2013-07-30 2 views
0

У меня есть только один файл index.php, который генерирует другие страницы с помощью:Изменить название для динамически создаваемых страниц PHP

RewriteRule ^page 1.php$ index.php?cat=a [NC] 
RewriteRule ^page 2.php$ index.php?cat=b [NC] 

Я пытаюсь использовать следующий код, чтобы изменить название моей страницы, но это работает только для index.php.

<?php 
$page = $_SERVER['PHP_SELF']; 
if(isset($page)) { 
switch($page) { 
case "/index.php": 
$title = "this is homepage"; 
break; 
case "/page 1.php": 
$title = "products"; 
break; 
case "/page 2.php": 
$title = "services"; 
break; 
} 
}else{ 
$title = "default title"; 
} 

print "<title>$title</title>"; 
?> 
+0

Вы эхом отдавали страницу $ раньше? Возможно, пробел был заменен на '% 20'. –

+0

PHP видит переписанный URL, а не оригинал. Вам нужно проверить '$ _GET ['cat']'. – Barmar

+0

@Barmar Я тестировал $ _Get ... Это не он. –

ответ

1

проверить места я не уверен, что они разрешены в URLs

Посмотрите на документацию:

http://php.net/manual/en/reserved.variables.server.php

попробовать это:

<?php 
$page = $_GET['cat']; 
if(isset($page)) { 
switch($page) { 
case "index": 
$title = "this is homepage"; 
break; 
case "a": 
$title = "products"; 
break; 
case "b": 
$title = "services"; 
break; 
} 
}else{ 
$title = "default title"; 
} 

print "<title>$title</title>"; 
?> 
+0

Они разрешены, их нужно просто закодировать с помощью '% 20'. – Barmar

+0

спасибо за точность – Freelancer

+0

мой htaccess все в порядке, я использую «-» ... это был всего лишь пример. Код для изменения названия не работает для страниц –

0

Использование \ s в вашем правиле переписать вместо пространства:

RewriteRule ^page\s1.php$ index.php?cat=a [NC] 
RewriteRule ^page\s2.php$ index.php?cat=b [NC] 
Смежные вопросы