问题 mod_rewrite和GoDaddy


我真的对我正在做的事情一无所知。抱歉。

这就是我重写这些URL的方法:

http://example.com/foo/bar/news/1-category-name/2-item-name
http://example.com/foo/bar/news/1-category-name

进入这些:

http://example.com/foo/bar/news.php?newsID=2
http://example.com/foo/bar/news-categories.php?categID=1

分别

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /foo/bar
  RewriteRule ^news\/([^\/]+)/([0-9]+)-([^\/]+)$   news.php?newsID=$3
  RewriteRule ^news\/([0-9]+)-([^\/]+)$            news-categories.php?categID=$1
</IfModule>

但每当我尝试这个URL:

http://example.com/foo/bar/news/16-news-category-1/11-title

它总是返回一个 404 错误:

在此服务器上找不到请求的URL /foo/bar/news.html/16-news-category-1/11-title

为什么要试图找到 news.html?我究竟做错了什么?

我不知道这是否相关,但是 example.com 是 虚拟 (我真的不知道这个词)。也可以通过访问实际文件 http://real-domain.com/qux/。所以你会这样做 http://real-domain.com/qux/foo/bar/news/1-category-name/2-item-name 到达,得到 2-item-name

说这个脚本实际上是在我的开发机器上运行也有帮助吗?

Development:
   PHP v5.3.5
   Apache v2.2

Live:
   PHP v5.3.6
   Apache v2.2

6145
2017-09-20 01:40


起源

你有/ foo / bar的重写库? - Book Of Zeus
不,我不。那是实际的内容 .htaccess 与此无关 mod_rewrite。我会尝试放一个 RewriteBase - Rolando Cruz
@Zeus:添加 RewriteBase /foo/bar 没有帮助。更新问题...... - Rolando Cruz
foo / bar存在吗?你的.htaccess位于哪里? - Book Of Zeus
@Zeus,是的 foo/bar 存在。该 .htaccess 在 foo/bar - Rolando Cruz


答案:


您在.htaccess中使用此代码:

RewriteEngine on

RewriteRule ^news/([0-9]+)-([a-z\-]+)-([0-9]+)/([0-9]+)-([a-z\-]+)(\/?)$ /news.php?newsID=$4 [L,NC]
RewriteRule ^news/([0-9]+)-([a-z\-]+)/([0-9]+)-([a-z\-]+)(\/?)$ /news.php?newsID=$3 [L,NC]

RewriteRule ^news/([0-9]+)-([a-z\-]+)-([0-9]+)(\/?)$ /news-categories.php?categID=$1 [L,NC]
RewriteRule ^news/([0-9]+)-([a-z\-]+)(\/?)$ /news-categories.php?categID=$1 [L,NC]

所以有人去的时候:

news/11-category-12 or
news/11-category-12/ or
news/11-category or
news/11-category/

它去: news-categories.php?categID=11

当有人去:

news/11-category-12/1-title or
news/11-category-12/1-title/ or
news/11-category/1-title or
news/11-category/1-title/

它去: news.php?newsID=1

另外,确保.htaccess位于public_html文件夹的根目录以及news.php和news-categories.php


11
2017-09-20 04:13