2012-11-14 44 views
-1

我有一个这样的网址:
page.com?c=example1&a=example2
但我想有这样的:
page.com/example1/example2的.htaccess,重写URL有一些例外

但是,如果用户是page.com/public/...不做任何东西,因为我有目录public/css/smth.css,当我试图访问它时,它会更改为像page.com?c=public&a=css/smth.css...这不是我想要的东西。

我该如何做到这一点只适用于不以public开头的网址?

我目前的.htaccess:

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^([^/]+)/([^/]+) index.php?c=$1&a=$2 
+0

什么是您当前的.htaccess文件? –

+1

请编辑您的问题,而不是发表评论。 –

回答

3

.htaccess文件需要看起来像这样:

# Follow symbolic links 
Options +FollowSymlinks 

# Turn on the rewrite engine 
RewriteEngine On 

# Set the general first level rewrites 
RewriteRule ^(.+)/((?!public).*)/(.+)/?$ $1.php?c=$2&a=$3 [NC] 

我没有测试以上,但它应该是沿着正确的线

+0

谢谢! '((?!public)。*)'正是我所需要的 –

+0

@BenasRadzevicius不用担心,乐意帮忙:-) –

2

希望这有助于!

RewriteRule ^page.com/public/([a-zA-Z0-9-]*)/$ page.com?c=public&a=$1 
RewriteRule ^page.com/([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*)/$ page.com?c=$1&a=$2 
RewriteRule ^page.com/([a-zA-Z0-9-]*)/([a-zA-Z0-9-]*)$ page.com?c=$1&a=$2 
+1

他怎么样,不是page.com/public/要求 –

+0

只需在规则上面添加#RewriteRule^page.com/public /([a-zA-Z0-9 - ] *)/ $ page.com?c = public&a = $ 1 –

+0

@bikashshrestha为什么在3行中这样做,当你可以在一个!? –