您如何从网站的主页网址中删除索引扩展名?当我访问我的网站时,URL显示为www.example.com/然后如果我点击about页面上的例子,然后点击我有href的徽标,然后返回主页,然后显示www。 example.com/index - 有没有办法简单地从索引页面中删除它,因为它看起来不太好。
我正在使用Perch提供的.htaccess文件ifModule来移除.php文件扩展名,如果这有帮助:
<IfModule mod_rewrite.c>
RewriteEngine on
# Redirect to PHP if it exists.
# e.g. example.com/foo will display the contents of example.com/foo.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ $1.php [L,QSA]
</IfModule>
任何帮助都会很棒!感谢
答案 0 :(得分:3)
最简单的方法是将徽标上的链接从index.php
更改为/
,这是您网站的根目录......
<a href="/index">...</a>
... becomes ...
<a href="/">...</a>
否则,您可以添加与/index
匹配的Apache RewriteRule并重定向到/
,并使用301
HTTP代码:
RewriteRule ^(.*)index$ / [R=301,L]
答案 1 :(得分:1)
这是您可以将第一条规则放置在任何地方隐藏/删除index.php的规则:
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE]
答案 2 :(得分:1)
这条规则:
RewriteRule ^(.+)$ $1.php [L,QSA]
仅对请求的URL执行内部重写。这意味着对重写产生的URL的任何更改都不会对客户端可见。
这意味着如果您的HTML包含正常的“php is visible”链接,那么用户将在其地址中看到的内容不好。因此,所有客户端链接必须在重写的非php版本中
<a href="/">..</a> This is ok - no php visible, user see http://example.com/
<a href="/index">..</a> Also ok: http://example.com/index
<a href="/index.php">..</a> Nope: user sees http://example.com/index.php