是否在htaccess上有其他条件?

时间:2010-02-16 06:42:00

标签: .htaccess

我的网站“services”文件夹中有一个.htaccess文件

之后必须提供两个网址

htaccess的内容

#------------------------
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^(.*)$ index.php?n=$1 [L,QSA] 
</IfModule>
$-------------------------

1. http://www.mysite.com/services/seo-work
2. http://www.mysite.com/services/online-editor

第一个使用像http://www.mysite.com/services/index.php?s=seo-work这样的htaccess重写的网址 这是正确的。但是当我在同一个文件夹“services”上传其他文件online-editor.php时,它无法正常工作

那么第一个网址应该如何使用index.php显示页面?s = seo-work如果在目录中找不到页面“online-editor.php”,则在线编辑器.php shoud show。我以编程方式表示我的问题

if(IsFoundPageInDirectory(online-editor.php))
{
   GoToUrl(http://www.mysite.com/services/online-editor.php)
}
else
{
   GoToUrl(http://www.mysite.com/services/index.php?s=seo-work)
}

请帮我解决这个问题 感谢您的回复

2 个答案:

答案 0 :(得分:0)

检查默认的wordpress .htaccess文件。我认为你缺少对现有文件和目录的检查。像

这样的东西
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . index.php [L]
</IfModule>

答案 1 :(得分:0)

最后我找到了回答..感谢第一回复引导我得到答案

<IfModule mod_rewrite.c>
  RewriteEngine on  
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^([^/]+)/$ $1.php 
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?n=$1 [L,QSA]
</IfModule>