Apache mod_rewrite不允许加载图像(和其他资源)

时间:2015-01-01 19:35:59

标签: apache .htaccess mod-rewrite

所以这是我的.htaccess文件:

AddHandler application/x-httpd-php .php .ru
DirectoryIndex tsuki.ru index.html

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /tsuki/

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [L]

# Rule to display data via ID
RewriteRule ^([^/]+)/([0-9]+)/?$ tsuki.ru?uri=$1&id=$2 [QSA,L]

# Display actions from controller
RewriteRule ^([^/]+)/([^/]+)/?$ tsuki.ru?uri=$1&action=$2 [QSA,L]

# Display specific ID for edit
RewriteRule ^([^/]+)/edit/([0-9]+)$ tsuki.ru?uri=$1&action=edit&id=$2 [QSA,L]

# Destroy specific ID
RewriteRule ^([^/]+)/destroy/([0-9]+)$ tsuki.ru?uri=$1&action=destroy&id=$2 [QSA,L]

# Display controller only
RewriteRule ^(.*)$ tsuki.ru?uri=$1 [QSA,L]

当我删除这些重写规则时,图像和其他资源加载正常(JS,CSS等)。我如何调整我的重写,以便可以使用相对路径加载资源?

1 个答案:

答案 0 :(得分:1)

您的两个RewriteCond仅适用于下一个规则 这意味着您的所有资产都可能已使用此规则重写

RewriteRule ^(.*)$ tsuki.ru?uri=$1 [QSA,L]

您可以通过这种方式重构代码

AddHandler application/x-httpd-php .php .ru
DirectoryIndex tsuki.ru index.html

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /tsuki/

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Rule to display data via ID
RewriteRule ^([^/]+)/([0-9]+)/?$ tsuki.ru?uri=$1&id=$2 [QSA,L]

# Display actions from controller
RewriteRule ^([^/]+)/([^/]+)/?$ tsuki.ru?uri=$1&action=$2 [QSA,L]

# Display specific ID for edit
RewriteRule ^([^/]+)/edit/([0-9]+)$ tsuki.ru?uri=$1&action=edit&id=$2 [QSA,L]

# Destroy specific ID
RewriteRule ^([^/]+)/destroy/([0-9]+)$ tsuki.ru?uri=$1&action=destroy&id=$2 [QSA,L]

# Display controller only
RewriteRule ^(.*)$ tsuki.ru?uri=$1 [QSA,L]

注意:不要忘记使用绝对路径而不是相对路径来获取所有资源(图片,js,css,href链接等)