使用.htaccess中的短链接隐藏index.php

时间:2015-04-18 03:15:11

标签: apache .htaccess mod-rewrite

如何将example.com/index.php?p=25&nav=left替换为example.com/page/25/left,如果可能,我还想阻止访问我的index.html文件。

如果有人输入example.com/index.php将其重定向到welcome.php

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^ welcome.php [L,R=302]

RewriteRule ^page/(\d+)/([^/]+)/?$ index.php?p=$1&nav=$2 [QSA,L,NC]

在第一个规则中使用THE_REQUEST非常重要,因为该变量不会随着其他规则的应用而发生变化,以避免重定向循环。

答案 1 :(得分:0)

在web_root / htaccess中尝试此操作

  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} ^/index\.php$ 
RewriteRule .* /welcome.php [L]
  RewriteRule ^page/([0-9]+)/(.*)/?$ /index.php?p=$1&nav=$2 [QSA,L]