htaccess - 强制重写url以使用子目录

时间:2018-01-26 08:23:45

标签: php .htaccess mod-rewrite

我的地址http://example.com/blog会重定向到应用程序中指定的网址 现在我需要“强制”使用此网址以使用子目录blog,因此当我转到http://example.com/blog时,它将使用/blog子目录。
我如何通过.htaccess文件执行此操作?

这是我的目录结构:

+- blog/  
+-----index.php
+-----.htaccess
+- app/
+- assets/
+- resources/
+- cache/
+- .htaccess
+- index.php

当前 root .htaccess文件

RewriteEngine On

#RewriteBase /
#RewriteCond %{HTTP_HOST} !^www.example.com [NC]
#RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_URI} =/sitemap.xml [OR]
RewriteCond %{REQUEST_URI} =/en/sitemap.xml [OR]
RewriteCond %{REQUEST_URI} =/ru/sitemap.xml
RewriteRule .* /?module=toolkits&action=xmlsitemap [L]

RewriteRule !(\.(ico|cdr|js|xml|flv|css|gif|jpe?g|png|tif|swf|doc|xls|pdf|zip|rar|ttf|eot|htc|otf|csv|woff|woff2|svg|mp4|map|txt))$ index.php [L,NC]

<IfModule mod_expires.c>
        <Filesmatch "\.(jpe?g|png|gif|xml|js|css|swf|ico|woff|woff2|ttf|mp3|mp4|map)$">
                ExpiresActive on
                ExpiresDefault "access plus 7 days"
        </Filesmatch>
</IfModule>

<IfModule mod_deflate.c>
    <FilesMatch "\.(js|css|html|php)$">
        SetOutputFilter DEFLATE
    </FilesMatch>
</IfModule>

#<IfModule mod_rewrite.c>
#RewriteEngine On

#
#
#</IfModule>

1 个答案:

答案 0 :(得分:0)

您需要将RewriteBase指令指向一个文件夹,该文件夹将作为所有相对路径的基础。

RewriteBase "/blog/"