.htaccess url重写不起作用

时间:2014-01-15 01:35:07

标签: php apache .htaccess

我正在尝试将http://womenhealthanddiet.com/article_info.php?id=238更改为women-health-article/。我尝试了不同的教程并在Stack Overflow上寻找答案,但无论我对url做什么,它都不会改变。我使用Godaddy作为虚拟主机。我该怎么办?

Options +FollowSymlinks
RewriteEngine on
#Fix Rewrite (-|-) this works as a fix for crazy ass godaddy, 
#thanks david walsh @ (davidwalsh.name)!
Options -Multiviews
RewriteRule ^women-health-article/([-_!~*'()$a-zA-Z0-9]+)/$ article_info.php?id=$1 [L]

2 个答案:

答案 0 :(得分:0)

这将静态重定向到article_info.php?id = 238

RewriteEngine on
RewriteRule   ^(.*)/women-health-article/$  article_info.php?id=238  [R,L]

这将根据网址后面的ID动态重定向。

RewriteEngine on
RewriteRule   ^(.*)/women-health-article/(.*)$  article_info.php?id=$2  [R,L]

答案 1 :(得分:0)

对我来说,我总是使用这个代码,这对我来说真的很好

RewriteEngine On

RewriteRule ^women-health-article-([a-zA-Z_0-9-/]+).html$ article_info.php?id=$1
RewriteRule ^women-health-article-([a-zA-Z_0-9-/]+).html/$ article_info.php?id=$1

在.htaccess文件中使用此代码将在url中提供此结果

http://you-domain-name.com/women-health-article-238.html

如果你想更改你的网址更好,你可以改变你的方法,并在你的数据库中创建一个表,让我们说表名是article_slug现在这篇文章slug将有文章slug就像id 。

现在,如果您发表文章,您应该输入本文的slug并使用它就像使用id一样

示例

你有文章标题(女性健身训练)和slug(健身女子火车) 所以php将是

我在

之前写的.htaccess的URL
http://you-domain-name.com/article-fitness-women-train.html

<?php

$getslug = $_GET['slug'];

$query = mysql_query("SELECT * FROM table WHERE article_slug = '$getslug' ");
$result = mysql_fetch_assoc($query);

?>

此示例的.htaccess文件将为

    RewriteEngine On

    RewriteRule ^article-([a-zA-Z_0-9-/]+).html$ article_info.php?slug=$1
    RewriteRule ^article-([a-zA-Z_0-9-/]+).html/$ article_info.php?slug=$1

所以就是这样