我的htaccess文件存在问题,无法确定是否是我的配置,或者是服务器缓存等因为我的网址搞乱了。
我的文件如下
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^website.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://website.com/$1 [R=301,L]
RewriteRule ^([a-z]+)\/?$ $1.php [NC]
第一条规则是将www移至非www,它有效。
第二条规则是将http移至https,它也有效。
第三条规则是将网址/anyFile
调用anyFile.php
,但保留一个可爱的网址。
问题是它调用了anyFile.html
,而不是PHP,如果我删除了所说的HTML文件,那么我会得到404.
是的,它可以在URL中键入anyFile.php,但我希望URL中没有.php。 如果它不够明显,它应该适用于任何文件名,而不仅仅是一个文件名。
非常感谢任何和所有帮助。
答案 0 :(得分:1)
使用以下代码替换.htaccess规则:
Options -MultiViews
RewriteEngine On
RewriteBase /
# single rule for http->https and www removal
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://website.com/$1 [R=301,L]
# hide .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-z]+)/?$ $1.php [NC,L]
答案 1 :(得分:0)
我最近也学会了如何做htaccess,所以我还是新手,但我会写
RewriteRule ^([a-z]+)\/?$ helloWorld.php [NC]
将其重定向到helloWorld.php
文件。
$1
是一个get参数。