php - 尝试创建友好的 URL 但失败了?

标签 php .htaccess mod-rewrite friendly-url seo

我能够创建一个唯一的 URL <a href="http://site.com/pod.php?id=20" rel="noreferrer noopener nofollow">http://site.com/pod.php?id=20</a>

在尝试通过 php 和 htaccess 的不同方法重写 URL 时,我遇到了 404 错误。

我想在数据库中使用不同的字段来构建 URL 并使其对 SEO 友好。这些字段将是名称、位置和类别。网址应该是这样的 <a href="http://site.com/name/location" rel="noreferrer noopener nofollow">http://site.com/name/location</a>

我真正想问的是如何实现这一目标?例子会很棒。

我在下面使用的文件:

content.php 的一部分

    while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "<div class=\"pods\">";
echo "<a href=\"/pod.php?id={$row['id']}\">";
echo "<div class=\"podHeading\">";  
echo "{$row['heading']}</a> <br> ";
echo "</div>";
echo "<div class=\"podImage\">";    
echo "<img src=\"images/{$row['imageName']}\">";
echo "</div>";

$string = "{$row['text']}";
if(strlen(htmlspecialchars_decode($string)) > 100) {
echo substr(htmlspecialchars_decode($string), 0, 100).'...'.$hyperlink;}
else {
echo htmlspecialchars_decode($string);
}

pod.php:

<?php
$connect = mysql_connect('x', 'x', 'x');
$select_db = mysql_select_db('x');

$id = mysql_real_escape_string($_GET['id']);
$query = 'SELECT * FROM podContent WHERE id = '.$id.' LIMIT 1';
$result = mysql_query($query);
$row = mysql_fetch_array($result);

// Echo page content
echo "<div class=\"podPageContainer\">";
echo "<div class=\"podPageContent\">";
echo "<div class=\"podPageHeading\">";
echo $row['heading'];
echo "</div>\n";
echo "<br/>";
echo $row['text'];
echo "</div>\n"; 
echo "</div>\n";
echo "<div class=\"pageSidebar\">";
include('ads/sidebarAds.php');
echo "</div>\n";
?>

.htaccess

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.site.com/$1 [R=301,L]  

Options +FollowSymlinks
RewriteEngine On

非常感谢任何帮助,谢谢!

最佳答案

你需要的是对你的 htaccess

将你的 rewriteRule 改成这个

^[a-zA-Z0-9-_]/[a-zA-Z0-9-_]$ http://www.site.com/index.php?name= $1&location=$2

所以可以通过$_Get方法获取名字和位置

关于php - 尝试创建友好的 URL 但失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233141/

相关文章:

.htaccess - 使用 htaccess 从基本 URL 中删除变量

apache - htaccess 不会重写子域

php - htaccess 针对不同 GET 变量的多个重写规则

javascript - 如何从 Mysql、php 创建一个事件的动态条形图?

php - 基本 SQL 语法、MAMP、PHP 和 MySQL

wordpress - 我想通过 htaccess 或使用 WordPress 功能更改 WordPress 网站特定页面的 URL

php - 此 mod_rewrite 规则如何导致我的任何文件无法加载?

apache - 为 CloudFlare 用户强制使用 .htaccess 的 HTTPS 和非 WWW

php - wordpress 中的错误插入到自定义表值中为空或 null

php - 拉维尔 5.1 : How to upload multiple files from three different file input fields?