2014-07-02 102 views
0

我正在开发一个使用Wordpress(用于文章,静态页面......)的网站,但是在我的主题文件夹中我创建了一个子系统(通过php-mysql处理, t需要Wordpress)使用另一个数据库(包含产品)。单品(product.php)的PHP页面是这样的:在Wordpress上使用.htaccess重写SEO友好的网址

<?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改写为product/的URL,事实上,开口(IE)该URL它的工作原理:

 http://localhost:1234/my-site/product/?url=product-number-one 
             ^
            product.php 

但我需要把它改写到WordPress的这个

http://localhost:1234/my-site/product/product-number-one 

的.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] 

,但不起作用。我尝试了其他解决方案,但没有做任何事

回答

0

你可以做的是非常简单的:

RewriteRule ^my-site/product/([A-Za-z0-9-]+)$ /my-site/filename_of_product_page.php?url=$1 [L] 

用括号中所列的表情,你就需要确保您的网址本身匹配插入名称到时这 - 所以使用擦洗器功能数据库。

+0

嗨@mydoglixu,我添加了你的行,并试图打开一个产品页面,但它不起作用:我得到“页面不存在” –

+0

whoops-我在结尾处忘了$和.php。当然,你需要更改实际的文件名,虽然... – mydoglixu

+0

Eheh我知道,但这里的问题是,我无法到达product.php,因为页面product.php已被Wordpress重写为“产品/ '在URL –