通过.htaccess重写URL时找不到页面

时间:2015-03-03 10:53:51

标签: apache .htaccess mod-rewrite

我在尝试为网站设置.htaccess时遇到了问题。

我试图在页面访问时从URL中删除文件夹。我设法使用此帖How can I remove this directory/folder from url with htaccess rewrite?成功从路径中删除了该文件夹,但是当我加载页面时,没有正确加载css,javascript或其他资源。

当我尝试从网址访问资源时,它说“在此服务器上找不到请求的网址/modules/content/styles/default.css”。'

模块是我在访问页面时尝试删除的文件夹,但似乎当我将代码添加到htaccess时,它会添加"模块"所有路径。

我的文件结构如下所示

enter image description here

我在根目录中有一个.htaccess文件,代码为:

RewriteEngine on
RewriteRule !^/?modules modules%{REQUEST_URI} [L,NC]

我在modules文件夹中也有一个代码:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+modules([^\s]*) [NC]
RewriteRule ^ %1 [R=301,L]

我尝试了多种解决方案,但都以" Page not found"结束,这是我得到的最接近但现在我遇到资源问题。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

您需要在root .htaccess中更改此规则:

RewriteEngine on

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^modules/ modules%{REQUEST_URI} [L,NC]