Apache .htaccess"重定向到非url"错误

时间:2015-09-15 08:08:23

标签: regex apache .htaccess mod-rewrite redirect

我暂时没有在.htaccess上使用网址重写,现在我想我已经忘记了一些基础。
这是我的服务器目录结构:

https://www.domain.com/dir/

我已经将我的网站放在这些文件中:

index.php
list.php
edit.php
home.php

我想要达到的目的是:用户写入https://www.domain.com/list.htaccess等网址,将该请求发送给index.php?section=list

所以,这是我目前的.htaccess

RewriteEngine On
RewriteBase /dir

Redirect on HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteRule /([a-zA-Z]+)/$ /index.php?section=$1 [NC,L]

htaccess tester上测试它似乎按预期工作,但不在我的网络服务器上 我在服务器根目录中没有.htaccess个文件,通过查看服务器日志,我只收到Redirect to non-URL个错误。
我也见过this answer但到目前为止它对我没有帮助。

1 个答案:

答案 0 :(得分:0)

/dir/目录中有这个.htaccess:

RewriteEngine On
RewriteBase /dir/

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?section=$1 [QSA,L]

这将支持美国网址http://domain.com/dir/list