用htaccess重写多个网址

时间:2018-10-18 17:14:12

标签: .htaccess url url-rewriting

我现在正为这个问题苦苦挣扎。在Google Search Console中,我遇到了许多抓取错误,并且存在相同的问题:Google找不到什至不存在的网址。

我已经查看了html代码,但是相对的URL都很好。而且我将/ -base用于所有内部链接。我认为问题是我的.htaccess文件。

在我的网站nationalsleaguevoetbal.nl上,我有两个带有不同重写的URL:

  1. / nieuws / item
  2. / wedstrijd / id / land

'land'不被使用,仅用于看起来不错。现在,Google Search Console找不到例如:

  • / wedstrijd / id / nieuws / item

它将两个不应包含的网址结合在一起。

我的.htaccess重写如下:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)$ /index.php?pagina=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^nieuws/([^/]+)$ /index.php?pagina=nieuws&item=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^wedstrijd/([^/]+)/([^/]+)$ /index.php pagina=wedstrijd&id=$1&landen=$2 [QSA,L]

我认为QSA可以解决问题,但是错误又回来了。你能帮我吗?

1 个答案:

答案 0 :(得分:1)

具有这种方式:

RewriteEngine On

# skip all files and directories from rewrites
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^ - [L]

RewriteRule ^nieuws/([^/]+)/?$ index.php?pagina=nieuws&item=$1 [QSA,L,NC]

RewriteRule ^wedstrijd/([^/]+)/([^/]+)/?$ index.php?pagina=wedstrijd&id=$1&landen=$2 [QSA,L,NC]

RewriteRule ^(.+?)/?$ index.php?pagina=$1 [QSA,L]