2014-11-05 65 views
-1

你好,我需要使我的网址干净,我只是不知道开始,因为它是令人难以置信的,我已经阅读了很多关于干净网址的事情,但我不知道。我需要一个没有参数的干净网址

这就是我在做woorank,因为我正在做我的seo。

警告!我们已在大量网址中检测到参数。

我不能确定这是否是正确的我已经出了我的真实域名,并把我的网站,而不是

#RewriteCond %{HTTP_REFERER} !^$ 
#RewriteCond %{HTTP_REFERER} !^//(\.)?My site/.*$[NC] 
#RewriteRule .(png|gif|jpg)$ – [F] 

RewriteCond %{HTTP_HOST} !^ My site.co.uk$ [NC] 
RewriteRule (.*) My site.co.uk/$1 [L,R=301] 

谢谢JC

+0

你好,非常感谢你回到我身边,我必须举什么样的例子?所以对我的无知感到抱歉。 – 2014-11-05 15:37:31

回答

0

一个基本的htaccess可以是这样的:

RewriteEngine on 
RewriteBase/

RewriteCond %{http_host} ^mysite.co.uk [nc] 
RewriteRule ^(.*)$ http://www.mysite.co.uk/$1 [r=301,nc] 

RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2&p3=$3 [L] 
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2 [L] 
RewriteRule ^([^/\.]+)/?$ index.php?p1=$1 [L] 

对于每个新参数,您只需在最后添加([^ /。] +)/和额外的参数..

代码中发生的事是由你决定的,但是如果你想使用类似这样的东西,你将需要一个标准的工作方式。

注:你不能只是实现现在这个样子,因为你的网站需要全力打造你的htaccess的结构。所以,如果你现在会取代这一点,其他很多事情可能会很快被打破。 ..。

+0

谢谢你回到我身边。 – 2014-11-05 15:38:01

+0

没问题,我希望这对你有帮助,或者让你更好地了解你的问题? – Naruto 2014-11-05 15:38:58

0

这取决于。火影忍者指出。我们需要知道你的代码的结构。举一些例子,说明这些网址现在是怎样的,以及你希望它们的样子。这些例子将解释你如何编程网站。

例如每个页面/about.php,/register.php或每个页面具有相同参数键的单个条目/index.php都有不同的php文件。

  • /index.php?page=page1 &富=酒吧& qux = NORF
  • /index.php?page=page2 &富=酒吧

或也许每一页具有不同的参数名称

  • /index.php?page=page1 &富=酒吧
  • /I ndex.php?页=第2页& qux = NORF

什么,你总是可以做的是重定向到一个单一的index.php

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

现在的index.php需要路由一切approperiately。这基本上和火影忍者建议的一样,但直接在PHP中,这对你来说可能更容易。 这条路由如何发生取决于您的代码,取决于您。但让我们假设您为每个页面使用不同的参数具有不同的文件。您可以在不更改代码的其余部分的情况下执行此操作。

// FROM: /shop.php?category=software&subcategory=webdevelopment 
// TO: /shop/software/webdevelopment 
$path = explode('/',$_SERVER['REQUEST_URI']); 
if($path[0] == 'shop') { 
    $_GET['category'] == $path[1]; 
    $_GET['subcategory'] == $path[2]; 
    include('shop.php'); 
} 

这种方式只需要编辑一个文件,其余代码仍可以使用$ _GET。这与您在htaccess中执行的操作相同。

+0

谢谢你的帮助,我会消化你们大家给出的答案。再次感谢你。詹妮弗克拉克。 – 2014-11-05 17:04:22