我整天都在寻找一种解决方案,使用 .htaccess 将 URL 中的 .php 替换为/。大多数解决方案对我来说根本不起作用(没有重写 URL,甚至只是删除 .php),直到我在 SO 上找到这个漂亮的解决方案。
https://stackoverflow.com/a/11084526/1724376
现在我的问题是它只删除了 .php 但没有用“/”替换它。我已经尝试了很多没有运气的事情,但我对 htaccess 和重写条件等了解不多。我真的希望这里有人能帮助我。
为了不让我因为没有尝试任何事情而被否决,这是我尝试过的一个,但它根本没有重写 URL。
RewriteCond /%{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php
我们将不胜感激。
编辑:为了澄清,我希望 www.mysite.com/contact.php 显示为 www.mysite.com/contact/
最佳答案
你的规则是这样的:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1/ [R=302,L,NE]
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
关于regex - 用/使用 .htaccess 替换 URL 中的 .php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24346865/