2011-08-16 95 views
0

我有一个非常简单的国防部重写规则简单的MOD-重写规则 - 单一规则 - 文件存在

Options FollowSymLinks 
RewriteEngine On 
RewriteRule ^hosted/essws/([^/]*)/$ /hosted/essws/?key=$1 [L] 

我想这个重写激活即使文件或目录是否存在。

例如: 的网址:

http://localhost/hosted/essws/candy-sweets-buffet/ 

将加载:

http://localhost/hosted/essws/index.php?key=candy-sweets-buffet 

即使目录/托管/ essws /糖果甜点自助餐/存在。

任何帮助将不胜感激。

+0

默认情况下,即使存在目录,URL也会被重写。 – Shef

+0

为什么它没有工作?尝试添加斜杠:RewriteRule ^/hosted/essws /([^ /] *)/ $/hosted/essws /?key = $ 1 [L] – realmfoo

回答

3
Options FollowSymLinks 
RewriteEngine On 
RewriteRule ^hosted/essws/([^/]*)/$ /hosted/essws/?key=$1 [L] 

看! rewriteRule不关心目录是否存在!它会重写URL!
你的问题很简单,太多人都拥有它!不要把/开始重写论文的参数!

Options FollowSymLinks 
RewriteEngine On 
RewriteRule ^hosted/essws/([^/]*)/$ hosted/essws/?key=$1 [L] 
0

我挣扎试图做了一会儿:

RewriteEngine On 
RewriteRule ^catalog/([0-9]+)/?$ catalog.php?id=$1 [NC,L] 

在我的情况下,catalog.php作为文件形式存在。通过删除MultiView,现有文件不再是重写过程中的问题。

Options -MultiViews 
RewriteEngine On 
RewriteRule ^catalog/([0-9]+)/?$ catalog.php?id=$1 [NC,L] 

完成!