这是我目前的.htaccess
Options +FollowSymLinks
DirectoryIndex index.php
RewriteEngine On
RewriteBase /product/
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php$ ./$1/ [R=301,L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteRule ^contact/?$ ./contact.php [QSA,L]
现在一切正常......
问题..
让我知道如何解决它;)
答案 0 :(得分:0)
这条线是否可能倒退?
RewriteRule ^(.*)/$ $1.php [L,QSA]
据我了解,这会将domain.com/product/help/重写为domain.com/product/help.php。 尝试
RewriteRule ^(.*).php $1/ [L,QSA]
这应该将domain.com/product/help.php重写为domain.com/product/help/ 和domain.com/foobar/baz.php到domain.com/foobar/baz/ 等
答案 1 :(得分:0)
遗憾的是,在重写语句中执行此操作会产生无限循环,因为Apache会尝试将help/
重写为help.php
,然后help.php
重写为help/
等等
如果确实有必要,请在您的应用程序中执行此操作(PHP中的示例):
<?php
// The (\?.*)? so it "ignores" query strings
if (preg_match('/\.php(\?.*)?$/', $_SERVER['REQUEST_URI'])) {
header('Location: ' . str_replace('.php', '/', $_SERVER['REQUEST_URI']));
exit;
}