我希望通过删除URL中的扩展来使我的域更加整洁。这是两个例子。
之前: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]
现在我正在从我的root开发另一个目录,它正在替换以下URL:
domain.ext/versionx/search.php
使用:
domain.ext/search.php
当然现在不存在。有没有办法修改这段代码,只会影响它自己目录中的文件?
答案 0 :(得分:0)
您可以改为使用此代码:
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]
如果因某些原因无法正常工作,请提供详细信息,例如哪些网址不起作用以及.htaccess的位置以及是否还有其他规则。