Php .htaccess在使用get值时重写url

Php .htaccess在使用get值时重写url,php,forms,.htaccess,get,Php,Forms,.htaccess,Get,我想变成一个 这是可能的吗?您需要了解mod_重写,请参见此处的示例和说明: 差不多 RewriteEngine On RewriteCond %{REQUEST_URI} ^/lala\.php$ RewriteCond %{QUERY_STRING} ^fname=bob$ RewriteRule ^(.*)$ http://www.starsQA.com/lala/bob.php [R=302,QSD,L] 您需要了解mod_rewrite,请参见此处的示例和说明: 差不多 Rewri

我想变成一个


这是可能的吗?

您需要了解mod_重写,请参见此处的示例和说明:

差不多

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/lala\.php$
RewriteCond %{QUERY_STRING} ^fname=bob$
RewriteRule ^(.*)$ http://www.starsQA.com/lala/bob.php [R=302,QSD,L]

您需要了解mod_rewrite,请参见此处的示例和说明:

差不多

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.php?fname=(.*)$ /lala/$1.php [R=302,L]
对面

RewriteRule ^/lala.php?fname=(.*)$ /lala/$1.php [R=302,L]

如果您想从
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
):

顺便说一下,别忘了重新启动Apache


如何重新启动Apache取决于您的平台配置。您在什么操作系统上运行它?

如果您想从
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
):

顺便说一下,别忘了重新启动Apache



如何重新启动Apache取决于您的平台配置。你在什么操作系统上运行它?

只是为了澄清,你想让用户在浏览器中看到哪个URL?只是为了澄清,你想让用户在浏览器中看到哪个URL?sadlyYea没有更改URL,这是你想要的部分。我刚刚将id更改为fname,并以这个URL aka 404 not FOUND结束。请查看QSD标志,sadlyYea没有更改url,这是您想要的部分我只是将id更改为fname,并最终得到这个url aka 404 not Found看看QSD标志,如果用户要键入,但您希望将请求重定向到,我所写的答案将起作用。你是说你想要相反的结果?也就是说,你想让用户打字吗?我可以把它添加到这个东西下面,对吗?选项-重写条件%{REQUEST_FILENAME}上的多视图重写引擎-f RewriteCond%{REQUEST_FILENAME}-重写规则^(.*)$$1.php[L,QSA]如何在一个实时站点上重置apache?我会给你一个更好的例子,用户输入,它会给他们,但用户看到他们在stillos=windows中输入的链接,并且该站点是实时的,而不是在像XAMPP这样的可视服务器上。我写的答案是,如果用户要键入,但您希望将请求重定向到,那么答案将起作用。你是说你想要相反的结果?也就是说,你想让用户打字吗?我可以把它添加到这个东西下面,对吗?选项-重写条件%{REQUEST_FILENAME}上的多视图重写引擎-f RewriteCond%{REQUEST_FILENAME}-重写规则^(.*)$$1.php[L,QSA]如何在实时站点上重置apache?我将为您提供一个更好的示例用户输入,它提供了一个更好的示例,但用户看到了他们在stillos=windows中输入的链接,该站点是实时的,而不是在xampp这样的可视化服务器上