- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前使用的是 Apache 2.2
我可以做一些简单的事情
RewriteRule ^/news$ /page/news.php [L]
RewriteRule ^/news/(.*)$ /page/news.php?id=$1 [L]
但是如果我想像这样发送 2 个参数怎么办
http://www.example.com/link/param1/param1_value/param2/param2_value
最后,我还想知道实现像 stackoverflow 这样的 SEO 友好 URL
尽管我可以访问带有类似 URL 的页面
只需用
装饰该 URL通过示例片段给我一些建议。
最佳答案
我知道 PHP symfony 框架允许您这样做。
它是如何工作的:在 apache 配置中,使用 mod_rewrite 将所有传入的请求重定向到单个入口点(在 symfony 中,这称为“前端 Controller ”)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
在这个前端 Controller 中,您将创建一个“请求”对象,它包含 URL 提供的所有信息。
例如,您可以说“/”之后的第一件事是要调用的 PHP 文件的名称,其他所有内容都是参数和值,因此: http://example.com/file/id/2将使用 id=2 调用 file.php
为此,只需使用一些正则表达式并仔细设计“请求”类。对于上面的示例,“Request”类应该同时提供 getRequestedAction() 和 getParameter(string parameter) 方法。当“请求”对象被完全填充时,将使用 getRequestedAction() 方法以调用正确的文件/操作/方法。
如果您选择使用 URL 上的 reg exp 和 _GET 数组的解析来填充请求对象的参数数组,您可能会遇到以下情况: http://example.com/file/id/2与http://example.com/file?id=2相同(两者都可以工作)
您可以选择忽略扩展名(http://example.com/file.html 与 http://example.com/file 相同),或者不忽略。
最后,对于某些 URL,您可以选择忽略最后一个“/”之后的所有内容。这样:http://example.com/question/3/where-is-khadafi与http://example.com/question/3/is-linux-better-than-windows相同
在不同的 file.php 中,只需使用 $request->getParameter('id') 来获取“id”参数的值,而不是使用 _GET 或 _POST 数组。
重点是
希望对你有帮助
关于apache - 漂亮的 URL 和 SEO 友好的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7170026/
在通过REST Request Body方法发出搜索请求时,例如 GET /bank/_search { "query": { "match_all": {} }, "sort": [
有没有办法检测用户是否停止滑动?也许 bij 鼠标输入检查之类的。我尝试在 onSliderChange 事件中使用鼠标 isButton0Release 和 hasFocus 来检查用户是否停止滑动
(来源:google.com) 最近,我发现我的应用程序中显示的汉字相当难看。 我想我应该让它们“消除锯齿”。但是,我如何在 Java 中做到这一点? 仅供引用,我没有明确选择要在 GUI 应用程序中
我正在创建一个网站,根据某些条件(即是否登录、是否填写表格等),不同页面的外观可能会有很大差异。这使得需要在不同的时间输出不同的html block 。 但是,这样做会使我的 php 代码看起来很糟糕
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
如果我有一个类包含例如几个将用向量填充的槽,那么问题通常会出现。如果我想让这个类的对象或多或少透明,我会为它实现 print-object。在这里我遇到了问题: 如果我在一行中打印所有内容,REPL
我有一个允许上传到我网站的文件扩展名列表。 我用 jQuery Validation plugin 检查它们. 如果他们选择了不受支持的扩展程序,我会显示一条错误消息。 看起来像 var msg =
在一个本身嵌套在一个或多个父数组/结构/union 中的数组/结构/union 中读取多个数字/字符串的最佳方法是什么? 没有临时变量的第一个例子: printf("%d %d\n", a[9][3]
我是 AngularJS 的新手。我目前在为我的观点编写漂亮的 url 时遇到问题。我已经设置了 $locationProvider.html5Mode(true);删除 #从地址栏中显示的网址。但是
我有一个带有 ElasticSearch 的自动完成 jquery 功能。输入第一个字母时出现以下错误。 跨源请求被阻止:同源策略不允许读取 http://localhost:9200/test12/
我是一名优秀的程序员,十分优秀!