Apache Mod Rewrite-重写URL
我必须从更改我的URLApache Mod Rewrite-重写URL,apache,mod-rewrite,url-rewriting,Apache,Mod Rewrite,Url Rewriting,我必须从更改我的URL https://example.com/public/contact.php(实际路径) 到 https://example.com/contact 使用mod重写 contact只是一个占位符,它应该适用于public目录中的每个文件。例如/home或/login 我可以通过以下方式删除文件扩展: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] 注意:这不会处理两个或更多
https://example.com/public/contact.php
(实际路径)
到
https://example.com/contact
使用mod重写
contact
只是一个占位符,它应该适用于public
目录中的每个文件。例如/home
或/login
我可以通过以下方式删除文件扩展:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
注意:这不会处理两个或更多级别的URL,即:
https://example.com/contact/form
你说的“改变”是什么意思/public/contact.php
实际上是文件的真实路径,您希望通过它进行访问吗?是的@EduardoEscobarNo,请查看您的apache服务器的错误日志,看看出现错误的原因是什么,感谢它现在正在工作!但是我还有一个小问题。。当我访问example.com
时,我想显示index.php
。这些规则与https://example.com
norhttps://example.com/index.php
。当我在example.com
上时,我会得到“index of”页面。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^\./]+)/?$
RewriteRule .* /public/%1.php [L]