为什么我的 htaccess 不能正确重写
Why does my htaccess not rewrite properly
我的 htaccess 文件有问题,无法确定是我的配置问题,还是服务器缓存之类的东西弄乱了我的 URLs。
我的文件如下
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^website.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://website.com/ [R=301,L]
RewriteRule ^([a-z]+)\/?$ .php [NC]
第一个规则是将 www 移动到非 www,它有效。
第二个规则是将http 移动到https,它也有效。
第三条规则是让URL/anyFile
呼唤anyFile.php
,但要保持可爱URL.
问题是它调用 anyFile.html
,而不是 PHP,如果我删除所说的 HTML 文件,那么我会得到 404。
是的,它可以在 URL 中输入 anyFile.php,但我不想在 URL 中输入 .php。
如果它不够明显,它应该适用于任何文件名,而不仅仅是一个文件名。
非常感谢任何帮助。
我最近也在学习htaccess,所以我还是个新手,但我会写
RewriteRule ^([a-z]+)\/?$ helloWorld.php [NC]
将其重定向到 helloWorld.php
文件。
是一个get参数。
用此代码替换您的 .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/ [R=301,L]
# hide .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-z]+)/?$ .php [NC,L]
我的 htaccess 文件有问题,无法确定是我的配置问题,还是服务器缓存之类的东西弄乱了我的 URLs。
我的文件如下
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^website.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://website.com/ [R=301,L]
RewriteRule ^([a-z]+)\/?$ .php [NC]
第一个规则是将 www 移动到非 www,它有效。
第二个规则是将http 移动到https,它也有效。
第三条规则是让URL/anyFile
呼唤anyFile.php
,但要保持可爱URL.
问题是它调用 anyFile.html
,而不是 PHP,如果我删除所说的 HTML 文件,那么我会得到 404。
是的,它可以在 URL 中输入 anyFile.php,但我不想在 URL 中输入 .php。 如果它不够明显,它应该适用于任何文件名,而不仅仅是一个文件名。
非常感谢任何帮助。
我最近也在学习htaccess,所以我还是个新手,但我会写
RewriteRule ^([a-z]+)\/?$ helloWorld.php [NC]
将其重定向到 helloWorld.php
文件。
是一个get参数。
用此代码替换您的 .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/ [R=301,L]
# hide .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-z]+)/?$ .php [NC,L]