根据以下代码:
如果用手输入的网址是:http://www.mydomain.com/nonexistingpage
然后根据 CODE 2 ; $_GET['page'] == 'nonexistingpage'
因此$sayfa
值被指定为olmayan_sayfa
'
我在 CODE 3 中说如果$sayfa == olmayan_sayfa;
然后加载pageis_olmayan_sayfa.inc.php
页面。
但是我得到了404页。
我甚至无法加载1 pageis_olmayan_sayfa.inc.php
页面。
所有其他案例都很有效,没有问题。
注意:我知道我可以通过.htaccess创建自定义404页面,但我想了解我的案例和更正方法的原因。
谢谢你,BR
#SEO friendly linking
RewriteRule ^yazılar/(.+)/(.+)$ index.php?page=yazılar&subject=$1&object=$2 [L]
RewriteRule ^yazılar/(.+)$ index.php?page=yazılar&subject=$1 [L]
RewriteRule ^etiketler/(.+)$ index.php?page=etiketler&subject=$1 [L]
RewriteRule ^(iletişim|etiketler|yazılar|eposta-doğrula|epostanız-için-teşekkür-ederim|yorum-doğrula|yorumunuz-için-teşekkür-ederim|yazı-ekle|yazı-doğrula|yazınız-için-teşekkür-ederim)$ index.php?page=$1 [L]
<?php
$sayfa = '';
if(!empty($_GET)) {$getsayaci = count($_GET);}
$url_check01 = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'utf-8');
$url_check02 = htmlspecialchars($_SERVER['SCRIPT_NAME'], ENT_QUOTES, 'utf-8');
if (isset($_GET['page']) AND $_GET['page'] != '')
{
if ($getsayaci == 1)
{
if ($_GET['page'] == 'yazılar') {$sayfa = 'yazilar';}
else if ($_GET['page'] == 'iletişim') {$sayfa = 'iletisim';}
else if ($_GET['page'] == 'site-haritası') {$sayfa = 'site_haritasi';}
else if ($_GET['page'] == 'etiketler') {$sayfa = 'etiketler';}
else if ($_GET['page'] == 'yorum-doğrula') {$sayfa = 'yorum_dogrula';}
else if ($_GET['page'] == 'eposta-doğrula') {$sayfa = 'eposta_dogrula';}
else if ($_GET['page'] == 'yorumunuz-için-teşekkür-ederim') {$sayfa = 'yorum_onay';}
else if ($_GET['page'] == 'epostanız-için-teşekkür-ederim') {$sayfa = 'eposta_onay';}
else if ($_GET['page'] == 'hakkında') {$sayfa = 'hakkinda';}
else if ($_GET['page'] == 'ara') {$sayfa = 'arama';}
else if ($_GET['page'] == 'yazı-ekle') {$sayfa = 'yazi_ekle';}
else if ($_GET['page'] == 'yazı-doğrula') {$sayfa = 'yazi_dogrula';}
else if ($_GET['page'] == 'yazınız-için-teşekkür-ederim') {$sayfa = 'yazi_onay';}
else {$sayfa = 'olmayan_sayfa';}
}
else if (isset($_GET['subject']) AND $_GET['subject'] != '')
{
if ($getsayaci == 2)
{
if ($_GET['page'] == 'yazılar') {$sayfa = 'yazarin_yazilari';}
else if ($_GET['page'] == 'etiketler') {$sayfa = 'bir_etiket';}
else if ($_GET['page'] == 'ara') {$sayfa = 'aranan';}
else {$sayfa = 'olmayan_sayfa';}
}
else if (isset($_GET['object']) AND $_GET['object'] != '' AND $getsayaci == 3)
{
if ($_GET['page'] == 'yazılar')
{
$sayfa = 'spesifik_yazi';
}
else
{
$sayfa = 'olmayan_sayfa';
}
}
else
{
$sayfa = 'olmayan_sayfa';
}
}
else
{
$sayfa = 'olmayan_sayfa';
}
}
else if ($url_check01 == '/index.php' AND $url_check02 == '/index.php' AND ($actual_link == site1.'/' OR $actual_link == site2 ))
{
$sayfa = 'anasayfa';
}
else
{
$sayfa = 'olmayan_sayfa';
}
<?php
switch ($sayfa)
{
case "anasayfa":
require ("{$rootfolder}/load/pageis_anasayfa.inc.php");
break;
case "yazilar":
require ("{$rootfolder}/load/pageis_yazilar.inc.php");
break;
case "iletisim":
require ("{$rootfolder}/load/pageis_iletisim.inc.php");
break;
case "eposta_dogrula":
require ("{$rootfolder}/load/pageis_iletisim_dogrula.inc.php");
break;
case "eposta_onay":
require ("{$rootfolder}/load/pageis_iletisim_tesekkur.inc.php");
break;
case "yorum_dogrula":
require ("{$rootfolder}/load/pageis_yorum_dogrula.inc.php");
break;
case "yorum_onay":
require ("{$rootfolder}/load/pageis_yorum_tesekkur.inc.php");
break;
case "etiketler":
require ("{$rootfolder}/load/pageis_etiketler.inc.php");
break;
case "bir_etiket":
require ("{$rootfolder}/load/pageis_bir_etiket.inc.php");
break;
case "yazarin_yazilari":
require ("{$rootfolder}/load/pageis_yazarin_yazilari.inc.php");
break;
case "spesifik_yazi":
require ("{$rootfolder}/load/pageis_spesifik_yazi.inc.php");
break;
case "yazi_ekle":
require ("{$rootfolder}/load/pageis_yazi_ekle.inc.php");
break;
case "yazi_dogrula":
require ("{$rootfolder}/load/pageis_yazi_dogrula.inc.php");
break;
case "yazi_onay":
require ("{$rootfolder}/load/pageis_yazi_tesekkur.inc.php");
break;
case "olmayan_sayfa":
require ("{$rootfolder}/load/pageis_olmayan_sayfa.inc.php");
break;
}
答案 0 :(得分:1)
您的nonexistingpage
与.htaccess规则不匹配。
答案 1 :(得分:1)
一些常见的反馈,而不是直接解决您的问题,只是阻止它们:
#SEO friendly linking
...
不是将大量规则硬编码到网络服务器配置( .htaccess )中,而是应该只有一条规则将所有不存在文件的请求定向到您的应用程序中。然后在脚本内处理请求。
你有很多重复的代码。其中大部分可以通过创建配置数据数组来处理:
$translate = array(
'yazılar' => 'yazilar',
'iletişim' => 'iletisim',
'...' => '...',
);
if (isset($translate[$_GET['page']])) {
$sayfa = $translate[$_GET['page']];
}
以后switch ($sayfa)
完全相同。