使用我当前的htaccess代码从我的地址中删除www(通过编辑)

时间:2015-01-09 14:51:38

标签: .htaccess

我在我的网站上使用以下htaccess代码:

Options +FollowSymLinks     
RewriteEngine on

RewriteRule ^([^/.]+)?/?([^/.]+)?/?$ switch.php?one=$1&two=$2 [L]

switch.php 有一段代码可以帮助我的词典网站呈现漂亮的地址。

假设点击字典中的单词 XXX ,则地址将为: 的 example.com/XXX

(全部通过对字典中的所有单词使用相同的“page.php”文件。

另一个例子,用户可以写地址example.com/YYY,他将被定向到YYY页面,该页面将使用“page.php”文件,并在地址栏中显示为“example.com/YYY”

我的问题是,我想从我的所有网页中删除www,但仍然使用我的代码。 所以任何www.example.com/XXX都是example.com/XXX

我尝试了很多方法来做到这一点,但所有剥离www代码的方法与我的代码不兼容。 (我需要switch.php继续工作,因为我不想更改我的网站地址,只是从页面中删除www)

我感谢任何可以帮助我解决问题的人。我不介意直接使用301,只要switch.php仍然有效。

谢谢!

1 个答案:

答案 0 :(得分:0)

This might be what you're looking for。或者它至少接近。这个例子去掉了http://,www和url末尾的斜杠,所以你可以调整它,如果它不适合你。它会做这样的事情

  

输入 - > http://www.google.com/ |输出 - > google.com

$input = 'www.google.co.uk/';

// in case scheme relative URI is passed, e.g., //www.google.com/
$input = trim($input, '/');

// If scheme not included, prepend it
if (!preg_match('#^http(s)?://#', $input)) {
    $input = 'http://' . $input;
}

$urlParts = parse_url($input);

// remove www
$domain = preg_replace('/^www\./', '', $urlParts['host']);

echo $domain;

// output: google.co.uk