大家好你们怎么建议我在漂亮的链接中做这个网址? 我尝试使用htaccess,但我找不到一个好的解决方案......
domain.com/?seite=page1&?id=33&name=1-Free-Cocktails!
for example:
www.domain.com/page1/1-Free-Cocktails!/
我有这段代码
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^page1/([0-9]+)/?$ /?seite=page=$1 [NC,L] # Handle product requests
RewriteRule ^page1/ /?seite=page[NC,L] # Handle product requests
输出
www.domain.com/page1/
THE BUTTON
<div class="pull-right kaufen">
<a href="/?seite=page1&id=<?php echo $item['id'];?>&name=<?php echo $product->prettyLinks($name);?>" class="btn btn-success">Info Anzeigen!</a></div>
我会帮助你!
答案 0 :(得分:1)
如果您希望将domain.com/page1/33/1-Free-Cocktails!/
转换为http://domain.com/index.php?seite=page1&?id=33&name=1-Free-Cocktails!
将.htaccess
文件放到domain.com/.htaccess
.htaccess
文件的内容应为:
RewriteEngine On
RewriteRule ^([a-z\0-9]+)/([0-9]+)/([A-Z\a-z\0-9\-\_]+)/$ /index.php?seite=$1&?id=$2&name=$3 [L]
如果您不需要33/
。那是
http://domain.com/page1/1-Free-Cocktails!/
转换为http://domain.com/index.php?seite=page1&name=1-Free-Cocktails!
,然后.htaccess
如下:
RewriteEngine On
RewriteRule ^([a-z\0-9]+)/([A-Z\a-z\0-9\-\_]+)/$ /index.php?seite=$1&name=$2 [L]
<强>更新强>
顺便说一句,如果您不希望33/
出现在网址中,您可以使用POST
发送,而不是使用GET
。
使用method post
您必须使用表单。此示例混合使用POST和GET方法。使用GET方法发送seite
和name
,而使用id
方法发送POST
。它看起来有点尴尬,但它是:
<div class="pull-right kaufen">
<form action="index.php?seite=page1&name=<?php echo $product->prettyLinks($name);?>" method="post">
<input type="hidden" value="<?php echo $item['id'];?>" name="id" />
<input type="submit" value="Submit">
</form>
</div>
然后在接收数据的PHP页面上,您的id
等可以输出如下:
<?php
echo htmlspecialchars($_POST["id"]);
echo htmlspecialchars($_GET["seite"]);
echo htmlspecialchars($_GET["name"]);
?>
参考:
Apache mod_rewrite Introduction(参见&#34;图1&#34; in&#34; Regex Back-Reference Availability&#34;部分)
更新2 :
您无法在.htaccess
中实现该功能,因为正如我在其中一条评论中所说的那样#34;您已经无法在页面加载后重写网址#&#34} 34 ;. .htaccess
不是PHP。您的网址如下http://domain.com/page1/1-Free-Cocktails!/。但是,你可以,例如,映射你的&#34; 33&#34; id为某个预定义名称,并将其显示在<title><?php echo $_POST["id"];?></title>
标记中。
但是,您拥有的其他选项之一是使用JavaScript和AJAX。但这将是另一个问题。你可以在这里开始你的研究:
Javascript: How do I change the URL in the address bar without refreshing the page?
Is there a way to change the browser's address bar without refreshing the page?