我的.htaccess文件:
RewriteEngine On
# If the request sent by the browser includes index.php...
RewriteCond %{THE_REQUEST} index\.php
# forbid access (403)
RewriteRule ^. - [F]
# Then you just need a generic rule to rewrite /mysite into index.php
RewriteRule ^mysite index.php [L]
我需要你无法访问:www.mysite.com/mysite.php,我只能访问它:www.mysite.com/mysite。
答案 0 :(得分:1)
在您的情况下,您只需在$
后面添加mysite
。您已经阻止访问index.php,但您的第二条规则与mysite
匹配,以及以mysite
开头的任何其他网址,包括mysite.php
和mysite/is/awesome.gif
。
RewriteEngine On
# If the request sent by the browser includes index.php...
RewriteCond %{THE_REQUEST} index\.php
# forbid access (403)
RewriteRule ^ - [F]
# Then you just need a generic rule to rewrite /mysite into index.php
RewriteRule ^mysite$ index.php [L]
请注意,您可以使用RewriteRule ^ -
代替RewriteRule ^. -
。后一个要求至少有一个字符,而第一个字符匹配所有内容,这在这种情况下不是问题,但是当你尝试写一些匹配所有内容时可能会咬你。