2017-01-23 120 views
0

我一直在修改我的网站URL以便美化它们,但是我目前有一个关于站点目录的问题。.htaccess中的mod_rewrite导致目录导致错误500

例如,我的链接看起来像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 

我真的不明白,因为我刚开始这方面的工作,第一次像在几个小时前,我刚开始了解正则表达式和路径格式。

我希望你能帮助我,并通过它帮助人们解决这个问题。

问候

+0

500用于服务器404上的页面上的错误找不到 –

回答

0

添加此

的RewriteCond%{REQUEST_URI}^/!(CSS | JS)/

下面

重写规则^ $ http://www.mywebsite.com/ $ 1 [L(*)? ,R = 301,NC]

请把这个和检查

,这之后

RewriteEngine叙述在

//已具备了这个规则,我们可以去掉上面提到的原则作为Apache将停止处理的其他条件时,看到这条规则

重写规则^(CSS | JSS) ($ | /) - [L]

+0

工程就像一个魅力,谢谢!但现在我有同样的错误,但对于他们的文件和子目录,我不确定修复它的方式。使用文件夹路径和/*.*进行操作符或类似的工作RewriteCond?无论文件扩展名还是子目录的数量,是否有办法处理目录及其内容? –

+0

我在我的地方做出了修改 –

+0

非常感谢你@Mohtisham,它按预期工作,我非常感谢你的帮助! –