0

我正在编写一些 RewriteRules,而我最基本的重写返回 404 错误。这是我的代码:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule s/(.*)/(.*)/$ /page.php?s=$2 [NC,L]
RewriteRule ^submit/$ submit.php [R,L]

# Options All -Indexes

<files .htaccess>
order allow,deny
deny from all
</files>

RewriteRule ^submit/$ submit.php [R,L]是我遇到麻烦的地方。当我访问 domain.com/submit/ 时,我的服务器返回 404 错误,提示“在此服务器上找不到请求的 URL /submit/”。就像服务器甚至没有查看我的 HTACCESS 文件一样。其他 RewriteRules 工作完美。

我错过了什么吗?

4

1 回答 1

1

你可以试试这个:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !page\.php    [NC]
RewriteRule ^s/(.*)/(.*)/$ /page.php?s=$2 [NC,L]

RewriteCond %{REQUEST_URI} !submit\.php  [NC]
RewriteRule ^submit   submit.php         [R,L,NC]

根据问题中的信息,就是这样。

无法猜测第一条规则是什么,因为没有 URL 示例来确定正则表达式匹配的模式或脚本的位置。

第二条规则会发生类似的情况,因为无法确认脚本 (submit.php) 的位置,同样,问题中没有 URL 示例。

于 2013-02-28T06:42:12.457 回答