.htaccess,重写url但有一些例外

时间:2012-11-14 16:52:39

标签: php .htaccess

我有一个这样的网址:
    page.com?c=example1&a=example2
但我想这样:     page.com/example1/example2

但是,如果用户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  

2 个答案:

答案 0 :(得分: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]

我没有测试过上述内容,但它应该沿着正确的方向进行测试

答案 1 :(得分: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