簡體   English   中英

多個重寫規則在.htaccess中不起作用

[英]Multiple Rewrite rules not working in .htaccess

這是我在.htaccess中的代碼:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+product\.php\?course_name=([^\s&]+)&course_id=([^\s&]+) [NC]
RewriteRule ^ /%1%2? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)([^/]+)/?$ /product.php?course_name=$1&course_id=$2 [L,QSA]

這工作正常,但現在我必須檢查用戶是否在我的網站中輸入了錯誤的地址,例如www.example.com/no-file-exists.php,然后它將重定向到我構建的404page.php來顯示錯誤。信息。 因此,我有此規則RewriteRule ^ 404page.php並將其放在我的代碼中,然后我之前的規則將被覆蓋,因此我不知道在哪里放置以便使所有規則正常工作,請幫忙嗎?

旁注:規則RewriteRule ^([^/]+)([^/]+)/?$ /product.php?course_name=$1&course_id=$2 [L,QSA]似乎是錯誤的。 我認為您忘記了/ ;-)

您可以通過不編寫其他重寫器來解決問題,而可以針對404錯誤創建處理程序。 您可以使用ErrorDocumentdocs )執行此操作。 您最終將得到如下結果:

ErrorDocument 404 /404page.php

提醒:如果第二個參數( /404page.php )並非以斜杠( / )開頭,則將其視為帶有404 not found標頭發送的文本字符串。 你不要那樣

暫無
暫無

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

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