嗨,伙计们,你如何建议我在漂亮的链接中做这个网址??我正在尝试使用 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/
按钮
<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>
我会感谢您的帮助!!
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/
出现在 URL 中,您可以使用 POST
而不是使用 GET
.
要使用method post
您必须使用表单。此示例混合了 POST 和 GET 方法。 seite
和name
使用 GET 方法发送,而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简介(请参阅"正则表达式反向引用可用性"部分中的"图 1")
$_POST
更新 2:您将无法在 .htaccess
中实现它,因为正如我在一条评论中所说"加载页面后您将无法重写 URL"。 .htaccess
不是PHP。您的网址如下 http://domain.com/page1/1-Free-Cocktails!/。但是,例如,您可以将您的"33"ID映射到某个预定义的名称,并将其显示在<title><?php echo $_POST["id"];?></title>
标签中。
但是,您拥有的其他选项之一是使用 JavaScript 和 AJAX。但这将是另一个问题。您可以在这里开始您的研究:
Javascript:如何在不刷新页面的情况下更改地址栏中的URL?
有没有办法在不刷新页面的情况下更改浏览器的地址栏?