2012-01-22 43 views
0

我正在尝试301将具有.php扩展名的网页重定向到其无扩展版本。使用以下规则,具有查询参数的页面失败(signup.php?login = true)或导致重定向循环。将.php重定向到仅用于非动态URL的无扩展名网址

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(([^/]+/)*[^.]+)\.php$ /$1 [R=301] 

我为此要排除动态URL(它似乎没有任何意义重写它们)。我已经编写了下面的代码,但这种情况似乎仍然与动态URL匹配。

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php\ HTTP/ 
RewriteRule ^(([^/]+/)*[^.]+)\.php$ /$1 [R=301] 

任何人都可以帮助我调整我的状况,以防止动态url被重写。

回答

1

请尝试以下操作。确保\.php\与'[NC]

RewriteEngine on 
RewriteBase/

#any url with .php and no anchor or query string 
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^\ ]+)\.php\ [NC] 
RewriteRule^/%1 [R=301] 
之间有2个空格
相关问题