Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 链接重写和删除旧链接_Php_Apache_Mod Rewrite - Fatal编程技术网

Php 链接重写和删除旧链接

Php 链接重写和删除旧链接,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我正在创建这个网站,我已经清理了我的URL。我在网上唯一找不到的就是如何删除旧的链接,这样每个页面只有一个链接 这是我的.htaccess RewriteBase / RewriteCond %{HTTP_HOST} !^domain.eu$ [NC] RewriteRule ^(.*)$ http://domain.eu/$1 [L,R=301] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_U

我正在创建这个网站,我已经清理了我的URL。我在网上唯一找不到的就是如何删除旧的链接,这样每个页面只有一个链接

这是我的.htaccess

RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.eu$ [NC]
RewriteRule ^(.*)$ http://domain.eu/$1 [L,R=301]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.eu/$1/ [L,R=301]

RewriteRule ^secured/ - [L]

RewriteRule ^login/$ paginas/login.php 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?taal=$1 
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?taal=$1&pagina=$2

ErrorDocument 404 /paginas/error404.php
那么我如何才能使index.php?taal=1&pagina=2类型的链接不可用,这样人们就只能使用domain.eu/1/2/


谢谢。

为什么要排除这些URL?如果短版本更好,并且用户被重定向到它们,他们将开始使用短版本。在我看来,让“旧”URL停止工作是不好的可用性。301重定向是解决问题的好方法

因为他们说谷歌不喜欢在同一个页面上有多个URL的网站。301是如何工作的,因为如果我在重写规则后加上[R=301],它会删除干净的url和指向旧url的链接。旧的URL仍然有效,但它不会将它们重定向到新的URL。谢谢你帮我。如果你不在某个地方使用那些“旧”URL,这对谷歌来说并不重要。只有使用两个不同的链接链接到内容时,才会出现重复内容的问题。如果你只使用你的新链接,没问题。您还可以使用[301,L]将具有旧URL的用户重定向到新URL,然后将干净的URL重写到参数版本,而无需重定向用户。