2010-03-02 79 views
1

有以下的mod_rewrite规则:的.htaccess和mod_rewrite的

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^index\.php$/[R=301,L] 
</IfModule> 

从任何我的网址条.PHP。

但是,如果我尝试指定301重定向到一个已经存在这样一个页面:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^index\.php$/[R=301,L] 
RewriteRule ^something-page\.php$ /something-page [R=301,L] 
</IfModule> 

服务器无法解析域名。

我在想我似乎已经把自己放入了一个递归循环。

任何帮助很多赞赏!

+0

请您只发布一个请求(和随后的重定向)的访问日志吗? – 2010-03-10 14:03:18

回答

0
RewriteRule ^(.*)$ $1.php 

这将重定向“/某物页”到“/soemthing-page.php”,那么这将反过来打这个:以上通用

RewriteRule ^something-page\.php$ /something-page [R=301,L] 

放置东西页规则.php重写规则,并将其标记为[L]。

+0

谢谢德鲁,试过 - 但无济于事。它仍然扼杀在URI。 – dikjones 2010-03-02 22:00:03

+0

因此,把重写规则放在最上面 - 并标记为[L]。仍然无济于事,似乎仍然处理通用的^(。*)$ $ 1.php。 基本上谷歌已经索引了一些我/ foo.php页面,我显然喜欢将301重定向到/ foo - 但我似乎无法让规则按预期工作。 任何帮助,将不胜感激。 – dikjones 2010-03-09 21:16:42