mod_rewrite的 - 我不能让它的工作像我想(mod_rewrite - I can'

2019-10-16 18:41发布

谢谢阅读。 首先,我有我的根目录与下面的语句中一个的.htaccess:

# Mod Rewrite
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteRule     ^$              /root/              [L]
    RewriteRule     (.*)            /root/$1            [L]
</IfModule>

和根文件夹中,我得到这个文件:

# Mod Rewrite
<IfModule mod_rewrite.c>
    RewriteEngine On

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

    RewriteRule ^(.*)$          /root/index.php/$1 [PT,L]
</IfModule>

此外,在文件夹/root ,我有三个文件夹: cssjsimages

我的应用程序的设计是从我的MVC框架(有点像CodeGgniter是)分离。 因此,这里的树:

- application
    - my application files are there
- root
    - css
    - js
    - images
- grecko
    - my mvc framework files are there

这样,我可以不接触整个网站谁的应用程序文件夹下运行更新我的框架。

不管怎么说,我想现在要做的是将上述三个文件夹上面我(说cssjsimages )和中移动他们/application/assets/ 。 但由于一切都被重定向到/root/ ,我需要的是允许这样的请求的规则http://www.domain.tld/css/blabla.css映射到/application/assets/css/blabla.css ,等等

我没有尝试,但没有成功。

谢谢。

Answer 1:

把这个代码$DOCUMENT_ROOT/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    RewriteRule ^(css|js|images)(/.*|)$ application/assets/$1$2 [L,NC]

    RewriteCond %{ENV:REDIRECT_STATUS} !200
    RewriteRule ^ root${REQUEST_URI} [L]
</IfModule>


Answer 2:

尝试把这个在你的Web根(不是根文件夹)的的.htaccess:

RewriteEngine on

RewriteRule ^(css|js|images)(.*) application/assets/$1$2 [L]

RewriteCond %{REQUEST_URI} !^/application/assets [NC]
RewriteRule (.*) root/$1 [L]

避免多余的空格。



文章来源: mod_rewrite - I can't make it to work like I want