簡體   English   中英

有關動態網址的mod_rewrite規則的幫助

[英]Help with mod_rewrite rule for dynamic url

嗯.. mod_rewrite讓我感到愚蠢。 我只是還沒有動腦筋。 :/

我有這個網址:

http://example.com/a/name/

...我想在這里指出:

http://example.com/a/index.php?id=name

...其中name是作為id參數傳遞給index.php name

我嘗試過的任何結果都會導致404或500。.:(

如果希望尾部的斜杠為可選,則必須排除將請求重寫到的文件。 否則,您將有一個很好的無限遞歸。

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]

在這里,任何以/a/…開頭但不是/a/index.php都將重寫為/a/index.php

但是,如果必須在結尾加上斜杠,則無需排除目標文件:

RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]

首先開始:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]

如果一個重寫教程對您不起作用,請嘗試另一個

編輯:根據Gumbo的建議排除了index.php

也許有些類似的東西


RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]

會成功的

我建議您看一下以下URL:

http://www.dracos.co.uk/code/apache-rewrite-problem/

提出的解決方案可以使用,但URL中有一些警告說明,主要涉及? 和#放在網址本身中。

暫無
暫無

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

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