如何在HTACCESS中修复mod_rewrite RewriteRule

时间:2013-02-28 04:11:45

标签: .htaccess mod-rewrite

我正在编写一些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工作得很好。

我错过了什么吗?

1 个答案:

答案 0 :(得分: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]

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

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

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