簡體   English   中英

在Wordpress上使用.htaccess重寫SEO友好的URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM