2016-08-16 78 views
0

这个问题可能会重复,但我搜索了很多,无法找到答案。所以我使用htaccess文件来重写,并且我想使用URL显示相同的页面:http://localhost/assoc/abouthttp://localhost/assoc/about/重写规则启用训练斜线和没有斜线

我通过“include_once”调用页面内容,页面位于目录/ www/assoc/astc /中。当我录像例如http://localhost/assoc/about它可以使用,但是使用训练斜线时,它会重定向到404页面。

这是我的htaccess。谢谢。

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 

RewriteRule ([a-z]+)$ astc/accueil.php?page=$1 [L] 

RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L] 

RewriteRule ([a-z]+)/([A-Za-z0-9_]+)$ astc/accueil.php?page=$1&id=$2 [L] 

RewriteRule ^/(.*)$ astc/accueil.php?page=$1&id=$2 [R=301,L] 

ErrorDocument 404 http://localhost/assoc/page-non-trouvee 
+0

这个.htaccess放在'/ www/assoc/astc /'目录下吗? – anubhava

+0

您的'.htaccess'文件格式非常糟糕,几乎没有任何意义。 '.htaccess'不支持引导斜杠,顶部的条件只适用于第一条规则,之后没有任何规则。另外,最后一条规则只有一个参数'(。*)',但试图获取两个数据('$ 1'和'$ 2')。我强烈建议你阅读文档和各种可用的指南,否则你将继续遇到问题而不知道事情是如何工作的。 –

+0

我会仔细阅读文档。谢谢。 – arshie92

回答

0

除非你已经拥有了它,尝试添加下面一行到你的htaccess

DirectorySlash On 
+0

我加了。但它仍然不起作用。 – arshie92

+0

我倾向于使用处女htacces来测试一个特定的项目。你有很多redir的东西坐在那里,这可能会干扰某些点。如果它不打破你的主机,首先尝试一个干净的htaccess斜杠的事情,然后添加一个项目一次,以确保你知道它在哪里得到越野车。祝你好运。 – 2016-08-16 12:50:15

+0

我继续找到一种方法。谢谢。 – arshie92

1

有几个问题。这条线

RewriteRule ^/(.*)$ astc/accueil.php?page=$1 [R=301,L] 

重定向所有请求到astc/accueil.php?page=

我也建议remap instead of redirect your requests

^/(.*)$正则表达式捕获所有的请求,因此不可能被评估的剩余重写规则。

Try adding rewrite log to debug your regex

+0

我会检查并尝试解决问题。我还没有阅读足够的关于重写的文档,所以我错过了很多东西。我会回复。谢谢。 – arshie92

0

所以最后它的工作与此内容:

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 

RewriteRule ([a-z]+)(/?)$ astc/accueil.php?page=$1 [L] 

RewriteRule ([a-z]+)/([A-Za-z0-9_]+)(/?)$ astc/accueil.php?page=$1&id=$2 [L] 

ErrorDocument 404 http://localhost/assoc/page-non-trouvee 

感谢大家。