这个重写规则有什么问题?

时间:2012-01-29 22:24:43

标签: .htaccess mod-rewrite url-rewriting

我有.htaccess

RewriteEngine On
RewriteRule ^!/(.*)$ path/to/a/file/$1 [L]
RewriteRule ^(.*)$ path/to/another/file/$1 [L]

我希望将www.website.com/!/this/形式的网址重写为path/to/a/file。任何与该模式不匹配的URL都应重写为path/to/another/file/

这是我尝试过的:

RewriteEngine On
RewriteRule ^!/(.*)$ path/to/a/file/$1 [L]
RewriteCond ...
RewriteRule ^(.*)$ path/to/another/file/$1 [L]

使用上述重写规则时,我得到500 - 内部错误。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

试试这个:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/!
RewriteRule ^!/([a-z0-9_\-\.]+) user/public/$1 [L]
RewriteCond %{REQUEST_URI} !^/!
RewriteRule ^([a-z0-9_\-\.]+)/([a-z0-9_\-\.]+)/?$ $1/controller/front.php/$2 [L]
RewriteCond %{REQUEST_URI} !^/!
RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/([a-z0-9_\-]+)/?$ $1/controller/front.php/$2/$3 [L]