[英]Rewrite URLs for SEO friendly with .htaccess on Wordpress
我正在使用Wordpress開發網站(用於文章,靜態頁面,...),但是在主題文件夾中,我創建了一個子系統(通過不需要Wordpress的php-mysql處理),該子系統使用另一個數據庫(包含產品) 。 單個產品( product.php
)的php頁面是這樣的:
<?php
...
if($_GET['url']){
$url = $_GET['url'];
$sql = "select * from `products` where url='$url'";
$row = // start the query ($sql);
$title=$row[0]['title'];
$body=$row[0]['body'];
}
else{echo '404 Page.';}
?>
<body>
<?php
echo "<h1>$title</h1>
<p>$body</p>";
?>
</body>
並由Wordpress重寫為URL中的product/
,實際上,打開(即)該URL即可:
http://localhost:1234/my-site/product/?url=product-number-one
^
product.php
但我需要重寫為
http://localhost:1234/my-site/product/product-number-one
默認情況下,Wordpress上的.htaccess是:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /my-site/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /my-site/index.php [L]
</IfModule>
# END WordPress
我添加了以下規則:
RewriteRule ^(.*) product?url=$1 [R]
但不起作用。 我嘗試了其他解決方案,但未完成。
您可以做的很簡單:
RewriteRule ^my-site/product/([A-Za-z0-9-]+)$ /my-site/filename_of_product_page.php?url=$1 [L]
使用括號內列出的表達式時,您需要確保url本身與此匹配-因此在將名稱插入數據庫時使用scrubber函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.