.htaccess清除未找到slugs 404的URL

时间:2013-11-19 20:13:29

标签: regex apache .htaccess mod-rewrite

我很抱歉再次提出这个问题,但我无法在不收到404网页错误的情况下使用我的网址。

public_html
   .htaccess

   webroot+
      index.php
      article.php

我正在使用htaccess将webroot文件夹设为主文档根目录(我无法访问虚拟主机)

RewriteCond %{HTTP_HOST} ^site.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !webroot/
RewriteRule (.*) /webroot/$1 [L]

我不确定问题是否是由于上面的代码引起的,但是当我尝试将我的网址清理为seo时,我得到了404页。

我正在尝试更改www.site.com/article.php?article_uid=number&article_title=title ---> www.site.com/article/id/title/

使用以下代码,它允许页面更改网址,但它给我找不到404。

RewriteCond %{THE_REQUEST} \ /article\.php\?article_uid=([^&]+)&article_title=([^&\ ]+)
RewriteRule ^ /article/%1/%2/? [L,R=301,NE]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^article/([^/]+)/([^/]+)/?$ /article.php?article_uid=$1&article_title=$2 [L,QSA]

离。

在此服务器上找不到请求的网址/ webroot / article / id / title /。

1 个答案:

答案 0 :(得分:1)

将最后一条规则更改为:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?:^|/)article/([^/]+)/([^/]+)/?$ webroot/article.php?article_uid=$1&article_title=$2 [L,QSA]