2017-06-23 32 views
0

我有这样的.htaccess配置:的.htaccess崩溃,并给出了404找不到网页

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php?|css|js|images|robots\.txt) RewriteRule ^(.*)$ index.php?$1 [L]

问题是在某些情况下htaccess的崩溃,并给予404错误(网页未找到) 下面是一些提示:

  1. 所有页面包含阿拉伯字符
  2. 有时两个网址之间的差别非常小(一个普通字符)
  3. 如果我添加/index.php域名后,它适用于所有,但我不想让index.php里面的url
  4. 我在Xampp上的本地机器上工作,但相同的代码与相同的HTACCESS文件工作正常Linux服务器上

我会写一些情况下htaccess的崩溃,而不是(在第一每个列表的链接拖之间的差别仅仅是一个正常的阿拉伯字符) 它并不适用于这些工作:

1- http://localhost/mywebsite/article/13057/%D9%85%D9%86(该参数是 “من”)

2- http://localhost/mywebsite/article/13057/%D8%A3%D8%B3%D8%A6%D9%84%D8%A9-%D9%88%D8%A7%D8%B3%D8%AA%D9%81%D8%B3%D8%A7%D8%B1%D8%A7%D8%AA-%D9%85%D9%86-%D8%A7%D9%84%D8%AD%D8%B6%D9%88%D8%B1-%D8%A7%D9%84%D9%83%D8%B1%D8%A7%D9%85

3- http://localhost/mywebsite/article/12803/%D8%AA%D9%81%D8%B3%D9%8A%D8%B1-%D8%A7%D9%84%D8%A2%D9%8A%D8%A7%D8%AA-14-19-%D9%84%D9%85%D8%A7%D8%B0%D8%A7-%D8%AD%D9%82%D8%AF-%D8%A5%D8%A8%D9%84%D9%8A%D8%B3-%D8%B9%D9%84%D9%89-%D8%A2%D8%AF%D9%85-

,并为这些正常工作:

1- http://localhost/mywebsite/article/13057/%D9%81%D9%86(该参数是 “فن”)

2- http://localhost/mywebsite/article/514/%D8%A7%D9%84%D8%AF%D8%B1%D8%B3-61-95%D8%AA%D9%81%D8%B3%D9%8A%D8%B1-%D8%A7%D9%84%D8%A2%D9%8A%D8%A7%D8%AA180-184-%D8%A7%D9%84%D9%88%D8%B5%D9%8A%D8%A9-%D9%88%D8%A7%D9%84%D8%B9%D8%A8%D8%A7%D8%AF%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B9%D8%A7%D8%A6%D8%B1%D9%8A%D8%A9

3- http://localhost/mywebsite/article/2562/%D8%B3%D9%88%D8%B1%D8%A9-%D8%A7%D9%84%D9%86%D8%B3%D8%A7%D8%A1-004-%D8%A7%D9%84%D8%AF%D8%B1%D8%B31569-%D8%AA%D9%81%D8%B3%D9%8A%D8%B1-%D8%A7%D9%84%D8%A2%D9%8A%D8%A9-31-%D8%A7%D9%84%D9%83%D8%A8%D8%A7%D8%A6%D8%B1-%D9%88%D8%A7%D9%84%D8%B5%D8%BA%D8%A7%D8%A6%D8%B1

回答

0

问题在于你的重写代码,尽管我可以看到它不允许使用非拉丁字母。 试着这么做

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^([0-9]+)/([^/]+)/?$ index.php?art_id=$1 [NC,L] 

我是从移动很抱歉回答有关显示

+0

感谢...但它不工作 –