Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 非常基本的修改问题_Php_Apache_Mod Rewrite_Rewrite - Fatal编程技术网

Php 非常基本的修改问题

Php 非常基本的修改问题,php,apache,mod-rewrite,rewrite,Php,Apache,Mod Rewrite,Rewrite,我试图使用搜索引擎优化友好的网址的网站。该网站以分层方式显示信息。例如,如果我的网站是关于汽车的,我希望URL“”显示存储在“cars”表中的所有福特车型。然后URL“”将显示所有福特Explorer车型(V-6、V-8、Premium等) 现在回答问题: mod_rewrite是用来将查询字符串样式的URL重写为语义URL,还是反过来?换句话说,当我使用JavaScript设置window.location=$URL时,URL应该是查询字符串版本“”,还是在内部使用“”,这样我就可以访问查询字

我试图使用搜索引擎优化友好的网址的网站。该网站以分层方式显示信息。例如,如果我的网站是关于汽车的,我希望URL“”显示存储在“cars”表中的所有福特车型。然后URL“”将显示所有福特Explorer车型(V-6、V-8、Premium等)

现在回答问题: mod_rewrite是用来将查询字符串样式的URL重写为语义URL,还是反过来?换句话说,当我使用JavaScript设置
window.location=$URL
时,URL应该是查询字符串版本“”,还是在内部使用“”,这样我就可以访问查询字符串变量

希望有人能看到我对这个问题的困惑。值得一提的是,我确实为我所有的顶级类别制作了独特的“slug”(很明显,该网站与汽车无关)



谢谢你到目前为止的帮助。我让重写工作,但它影响了网站上的其他路径(CSS、JavaScript、图像)。我使用正确的路径结构来包含所有这些内容(即“/images/car.png”和“/css/main.css”)。我是否必须为所有文件使用绝对路径(“”)?谢谢

一旦您设置了
mod_rewrite
,那么您的链接应该指向URL的mod_rewrited版本(在您的示例中:)。在系统内部,您仍然会引用变量,就好像它们是传统的查询字符串名称-值对一样

还值得指出的是,谷歌现在开始从搜索引擎的角度提倡更多的逻辑URL,即使用查询字符串而不是mod rewrite

这是否意味着我应该避免 完全重写动态URL?那是 我们的建议,除非你方 重写仅限于删除 不必要的参数,否则您将 非常努力地清除所有 可能导致问题的参数。 如果将动态URL转换为 让它看起来是静态的,你应该是静态的 意识到我们可能无法 用英语正确解释信息 所有案例

也值得一看:

通常,使用mod_rewrite的人使用的术语如下:

我想把A改写成B

这意味着外部世界对页面A的任何请求都会被重写为服务器上的文件B

您希望外部世界看到如下URL

A)
http://example.com/ford/explorer

但是您的web服务器希望它们看起来像

B)
http://example.com/page.php?type=ford&model=explorer

我会说,您希望将(A)重写为(B)的样子,或者您希望将语义URL重写为查询字符串URL


由于页面上的所有链接都是由用户单击和/或由浏览器请求的,因此您希望它们看起来像(A)。这包括javascript在window.location中使用的链接。它们可以而且应该看起来像(A)。

seengee,我不会将“”称为“修改过的”版本。在一个URL被“mod_重写”之后,我会说它看起来像“”。我总是从服务器的角度使用mod_rewrite这个词。我想我总是从另一个角度看它,而不必考虑确切的语义,不确定哪一个是严格正确的,但对我来说都有意义。我明白为什么OP会混淆。不同的人用不同的方式来引用它。约翰,你的编辑似乎提出了一个完全不同的问题。有许多方法可以排除重写的特定文件、文件类型或URL。我建议你搜索已经发布的问题,或者问一个新的问题,详细说明你的问题。