我希望/blog/anything-that-doesn't-exist
重定向到/blog
,而其他任何404都由Drupal处理。
我的htaccess目前有:
ErrorDocument 404 /index.php
所以一切都由Drupal处理。是否有可能具有特定于子目录的404规则,但是从根目录htaccess设置该规则? /blog/
子目录是由Drupal生成的,所以我不能在那里放置一个重写的htaccess。
答案 0 :(得分:0)
您可以在Root / .htaccess文件中使用以下代码:
RewriteEngine On
#If /blog/foo is not a directory
RewriteCond %{DOCUMENT_ROOT}/blog/$1 !-d
#And /blog/foo is not a file
RewriteCond %{DOCUMENT_ROOT}/blog/$1 !-f
#Then redirect /blog/foo to /blog
RewriteRule ^blog/(.+)$ /blog/ [NC,L,R]
值得注意的是,RewriteRule和ErrorDocument指令的执行时间不同。 RewriteRule指令在ErrorDocument指令之前执行,因此任何对/ blog / bad_url的请求都将由上面的规则处理,所有其他404请求将由ErrorDocument处理。