簡體   English   中英

.htaccess文件重寫規則檢查

[英].htaccess file rewrite rule check

我想重寫我的Apache mod_rewrite模式。 我曾經做以下事情:

RewriteEngine on
RewriteRule /^([^A-Z0-9a-z]+)\.html /search.php?search_id=$1&%{QUERY_STRING}

按照上述規則,我無法實現我的期望。 誰能告訴我代碼有什么問題以及如何解決。

編輯。 我的要求很簡單。 如果我將/1.html輸入到/search.php?search_id=1,我想重定向

而已。

這應該工作:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !search\.php
RewriteCond %{REQUEST_URI}  ^/([0-9]+)\.html [NC]
RewriteRule  .*    search.php?search_id=%1    [L,QSA]

靜默地圖

http://example.com/FileID.html

至:

http://example.com/search.php?search_id=FileID

search.php被認為是固定字符串,而FileID可以是任何數字。

要進行永久重定向,請將[L,QSA]替換為[R=301,L,QSA]

您的規則中有錯字,請嘗試以下操作:

RewriteEngine on
RewriteRule ^/([^A-Z0-9a-z]+)\.html /search.php?search_id=$1&%{QUERY_STRING}

順便說一句,您也可以嘗試使用此方法:

RewriteRule ^/?([^A-Z0-9a-z]+)\.html /search.php?search_id=$1&%{QUERY_STRING}

這使斜杠成為可選。

您在域后輸入1.html嗎? 就是說,如果您的域名是example.com,那么您鍵入example.com/1.html? 如果您正在這樣做,則不要在.htaccess文件中的正則表達式前使用/。

嘗試將以下內容添加到主.htaccess文件中。 該目錄位於具有您的網站主頁的目錄中:

RewriteEngine On
#RewriteBase /
RewriteRule ^([A-Za-z0-9]+)\.html/?$ /search.php?search_id=$1 [NC, L]

我已經使用RewriteBase作為注釋。 如果您使用共享服務器,則將其保留為注釋或刪除該行。

編輯:[NC,L]用來告訴您,規則的NC標志不需要區分大小寫(無大小寫),如果匹配,則L標志用於停止。

暫無
暫無

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

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