[英].htaccess rewrite url when using get values
我正在嘗試將http://www.starsqa.com/lala.php?fname=bob轉換為http://starsQA.com/lala/bob
<form action="lala.php" method="get">
Name: <input type="text" name="fname">
<input type="submit">
</form>
Welcome <?php echo $_GET["fname"]; ?>.<br>
我在.htaccess上嘗試了此操作,但沒有任何反應
Redirect 302 /lala.php?fname=bob http://www.starsQA.com/lala/bob.php
這可能嗎?
如果您希望將訪問者從http://www.starsqa.com/lala/bob
發送到http://www.starsqa.com/lala.php?fname=bob
:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala/bob$ /lala.php?fname=bob [L,QSA]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala/bob/$ /lala.php?fname=bob [L]
如果要使用fname可以是任何名稱的通用模式,請嘗試以下操作:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala/([a-zA-Z0-9:\@.\-\+]{1,100})$ /lala.php?fname=$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala/([a-zA-Z0-9:\@.\-\+]{1,100})/$ /lala.php?fname=$1 [L]
相反,如果您想將訪問者從http://www.starsqa.com/lala.php?fname=bob
發送到http://www.starsqa.com/lala/bob
:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala.php?fname=bob$ /lala/bob [L]
同樣,更通用的模式是:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/lala.php?fname=([a-zA-Z0-9:\@.\-\+]{1,100})$ /lala.php/$1 [L]
最后一個示例(將用戶從starsQA.com/jen-lilley-contact
發送到starsQA.com/contact-id=6
):
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/jen-lilley-contact$ /contact-id=6 [L]
順便說一句,不要忘記重啟Apache。
如何重新啟動Apache取決於您的平台配置。 您在什么操作系統上運行它?
您需要研究mod_rewrite,在此處查看示例和說明: http : //www.simonecarletti.com/blog/2009/01/apache-query-string-redirects/
就像是
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/lala\.php$
RewriteCond %{QUERY_STRING} ^fname=bob$
RewriteRule ^(.*)$ http://www.starsQA.com/lala/bob.php [R=302,QSD,L]
RewriteRule ^/lala/(.*)$ /lala.php?fname=$1 [R=302,L]
相反?
RewriteRule ^/lala.php?fname=(.*)$ /lala/$1.php [R=302,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.