簡體   English   中英

如果找不到匹配項,則將Mod_rewrite寫入404頁面

[英]Mod_rewrite to 404 page if match not found

嘿,我正在嘗試對搜索引擎友好的URL進行mod-rewrite,如果找不到該文件,它將解析為404頁面。 當我因為找不到匹配項而將其用於無法解析為文件的目錄(即search / .php)時,則在找到匹配項時不起作用。

基本上,當您進入url / search /時,如果有索引頁,並且需要將url / search / filename解析為搜索目錄中的filename.php,我需要它工作。 有人知道如何做到這一點嗎?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S2] #file not found, skip to 404
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule .? - [S1] #file found, ignore redirect to 404
RewriteRule (.*) 404.php?file=$1

為什么不只是:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) 404.php?file=$1 [L]

而不是所有這些跳過?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM