使用url cut将url重写到根目录

时间:2014-11-16 15:15:35

标签: .htaccess

我有这样的网址:

http://site.ru/ontent/wefwefw/article.php?article=369-tayskaya-kuhnya-recept-s-foto
http://site.ru/ontent/wefwefw/article.php?article=32237-ogurci-recepti-na-zimu
http://site.ru/ontent/wefwefw/article.php?article=90-ogurci-na-zimu-recepti-po-koreyski

我想改写像:

http://site.ru/tayskaya-kuhnya-recept-s-foto.html
http://site.ru/ogurci-recepti-na-zimu.html

我试过像:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ontent/wefwefw/$1 [L]

但是如何削减字符串不必要的部分?

2 个答案:

答案 0 :(得分:0)

除非article.php能够单独从标题中获得正确的文章,否则您无法做到。 mod_rewrite擅长重写内容,但如果原始请求中没有文章内容,它就无法从空中传唤。你会有类似的东西:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)\.html$ ontent/wefwefw/article.php?article=$1 [L]

如果您要求http://site.ru/tayskaya-kuhnya-recept-s-foto.html,则会加载http://site.ru/ontent/wefwefw/article.php?article=tayskaya-kuhnya-recept-s-foto。然后,如果需要,你必须根据标题以其他方式获得id 369.

答案 1 :(得分:0)

这种情况下最好的是:

http://site.ru/369-tayskaya-kuhnya-recept-s-foto.html

重定向到

http://site.ru/ontent/wefwefw/article.php?article=369

使用:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(\d+)-[^/]*\.html$ ontent/wefwefw/article.php?article=$1 [L]