Apache Mod Rewrite-重写URL

Apache 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] 注意:这不会处理两个或更多

我必须从更改我的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]

注意:这不会处理两个或更多级别的URL,即:
https://example.com/contact/form

你说的“改变”是什么意思
/public/contact.php
实际上是文件的真实路径,您希望通过它进行访问吗?是的@EduardoEscobarNo,请查看您的apache服务器的错误日志,看看出现错误的原因是什么,感谢它现在正在工作!但是我还有一个小问题。。当我访问
example.com
时,我想显示
index.php
。这些规则与
https://example.com
nor
https://example.com/index.php
。当我在
example.com
上时,我会得到“index of”页面。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^\./]+)/?$
RewriteRule .* /public/%1.php [L]