我在.htaccess
文件中有这个内容来处理我的路由:
DirectoryIndex root.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . root.php [L]
然后我想用领先的" www。"将用户重定向到我的域名。我在SO上找到了这个代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
所以我从这个条件中删除了L
标志并将该代码复制到那里,所以现在这是我的.htaccess
文件:
DirectoryIndex root.php
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|offs()
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . root.php [L]
不幸的是,这会导致内部服务器错误。如何修复它并使两个条件都有效?
答案 0 :(得分:1)
您可以在root .htaccess中使用此代码:
DirectoryIndex root.php
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^root\.php$ root.php [L,NC]