【发布时间】:2018-12-03 02:40:12
【问题描述】:
尝试设置一个.htaccess 文件以将所有以.php 结尾或根本没有文件扩展名的URL 指向index.php。所以像mysite.com/about和mysite.com/news.php这样的URL会转到index.php,但是mysite.com/someimage.jpg和mysite.com/mystyle.css会被正常处理。
当我使用常规的旧 PHP 进行测试时,我以为我已经得到了它,但在 .htaccess 文件中似乎没有翻译。这是我想出的两条规则:
RewriteRule [A-Za-z0-9]*$ "index.php" [L] # URLs with no extension
RewriteRule [A-Za-z0-9]*\.php$ "index.php" [L] # ending in .php
使用这些规则,CSS 和图像之类的文件不会被提供,所有内容仍将发送到index.php,因此当浏览器请求样式表时,服务器将提供index.php。我试过注释掉.php 规则,所以只应用“无扩展”规则,结果相同。我尝试在开头添加一个斜杠,就像在 URL 中一样,这实际上破坏了一些规则,因此没有应用任何规则。
我在这里遗漏了哪些微小但明显的细节?
【问题讨论】:
-
如果有疑问,启用/查看重写日志通常会有所帮助 - 至少对于重叠/相似的规则。
-
我不知道重写日志。刚打开它。谢谢!
标签: regex apache .htaccess url-rewriting