我想通过删除URL中的扩展名来让我的域更整洁一些。下面是两个例子。
Before: domain.ext/index.php
后置:domain.ext/index/
这是我从另一个(不活跃的)问题中收集到的:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET' /[^?'s]+'.php
RewriteRule (.*)'.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
现在我正在根目录下的另一个目录中开发,它替换了以下URL:
domain.ext/versionx/search.php
:
domain.ext/search.php
当然现在不存在。有没有办法修改这段代码,使它只影响自己目录下的文件?
您可以使用以下代码:
RewriteCond %{THE_REQUEST} 's/+(?:index)?(.*?)'.php['s?] [NC]
RewriteRule ^ /%1/ [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
如果由于某些原因不能工作,请提供详细信息,例如哪个url不能工作,.htaccess的位置以及是否有其他规则