.htaccess中的mod_rewrite导致目录导致错误500

时间:2017-01-23 18:05:46

标签: php apache .htaccess mod-rewrite

我一直在修改我的网站网址,以便稍微美化它们,但我目前在网站目录方面遇到了问题。

例如,我的链接看起来像users/[user_id]/而不是users.php?p=[user_id]。如上所述,一切都在目录中运行良好。

当我尝试访问www.mywebsite.com/js/时,我面临来自服务器的错误500,假设这意味着没有具有此名称的文件/目录,因为RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d行。

以下是我在.htaccess文件中输入的代码:

RewriteEngine On
RewriteRule ^users/([0-9]+)/?$ /user.php?p=$1
RewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/?$1 [L,R=301,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ $1.php
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

# Error Documents Redirect
ErrorDocument 404 http://www.mywebsite.com/notFound/
ErrorDocument 403 http://www.mywebsite.com/forbidden/
ErrorDocument 401 http://www.mywebsite.com/unauthorized/

# Options
Options All -Indexes
Options All +FollowSymLinks

我真的不明白,因为我几个小时前第一次开始研究这个问题,而我刚开始理解正则表达式和路径格式化。

我希望你能够帮助我,并通过这个帮助那些面临这个问题的人。

此致

1 个答案:

答案 0 :(得分:0)

添加此

RewriteCond%{REQUEST_URI}!^ /(css | js)/

下面

RewriteRule ^(。*)$ http://www.mywebsite.com/?$ 1 [L,R = 301,NC]

请把它放入并检查

以及之后的

RewriteEngine On

//有了这个规则,我们可以删除上面提到的规则,因为当看到这个规则时,apache会停止处理其他条件

RewriteRule ^(css | jss)($ | /) - [L]