当前位置: 首页 > 面试题库 >

如何使用.htaccess创建友好的URL?

翟黎明
2023-03-14
问题内容

.htaccess我很难受。我想为我正在工作的网站创建友好的URL。

基本上我想将其转换为:

http://website.com/index.php?ctrl=pelicula&id=0221889
http://website.com/index.php?ctrl=pelicula&id=0160399&tab=posters

变成这个:

http://website.com/pelicula/0221889/
http://website.com/pelicula/0221889/posters/

如果以后需要,我也想知道如何将文章标题添加到URL的末尾(如下所示)(我正在使用PHP):

http://website.com/pelicula/0221889/the-article-name/
http://website.com/pelicula/0221889/the-article-name/posters/

注意:Stackoverflow方法对我也有好处,例如,此问题的网址为:

http://stackoverflow.com/questions/3033407/htacces-to-create-friendly-urls-help-needed

但是您可以在id后面放任何东西,它也可以工作。像这样:

http://stackoverflow.com/questions/3033407/just-anything-i-want

我使用了一些自动Web工具来创建.htacces文件,但该文件无法正常工作。因此,我请求您的帮助。

如果您可以推荐.htacces最佳做法和建议,我也将很高兴。

编辑:根据我在这里得到的一些答案,我把这个:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/([^/]+)/([^/]+)/?([^/]*)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
</IfModule>

但是我收到默认主机“找不到页面”错误。

我也尝试过:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/(\d+)/([^/]+)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
    RewriteRule ^([^/]+)/(\d+)/?$         index.php?ctrl=$1&id=$2 [QSA,L]
    RewriteRule ^([^/]+)/?$               index.php?ctrl=$1 [QSA,L]
</IfModule>

这也不起作用。它带我到默认的404.php页面。

mod_rewrite已启用并且正在工作。

帮帮我!


问题答案:

在文档根目录中,http://website.com/我将放置如下htaccess文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

然后在您的PHPhtml" target="_blank">脚本中,您可以根据需要操纵$_GET['url']变量:

$path_components = explode('/', $_GET['url']);
$ctrl=$path_components[0];
$id=$path_components[1];
$tab=$path_components[2];


 类似资料:
  • 问题内容: 这是我的.htaac​​cess代码。 我需要网站的干净URL。我参考了许多教程和论坛,并创建了上面的代码。但是无法正常工作。几乎我正在与代码作斗争。我不太清楚干净的URL概念。我要在我的php页面上编写任何编码吗? 我在index.php文件中有此链接。 我想要同时点击链接泰坦尼克号。 我也想通过$ _ [request]获得值。 我到底要做什么。请不要重复提出这个问题,我已经搜索了

  • 有什么问题吗 如何将此URL转换为友好的? 我尝试...但不是工作 请帮帮我!!! 查看数据库的图像---- http://s13.postimg.org/63mrxn3if/IDPRODUCT.jpg 我的htaccess--- 重写引擎在重写康德%{HTTP_HOST}^mydomain.com$重写规则。-[E=REWRITEBASE:/presta1_5/]重写规则^api/?(。*)$%

  • 我正在尝试更改API文档的基本访问url。url是“http://localhost:8080/swagger-ui.html”。我想获得类似“http://localhost:8080/myapi/swagger-ui.html”的内容。 我使用Springfox 2.8.0 Swagger、Java 8、Spring Boot 2.0的Swagger配置是: 自定义路径提供程序必须提供帮助,但

  • 我正在努力使我的网站更加SEO友好,我目前正在使用 将转换为 我还想将其用于子页面。我试过这个: 但是它不工作,它运行,但是当您转到时,它返回未找到的404。 我希望它运行并返回 或 site.co.uk/page_name/sub_page并返回sub_page 等等等等

  • 问题内容: 如何在OpenCart中自定义系统URL?例如,我希望将http://example.com/index.php?route=checkout/cart显示为http://example.com/cart 我知道OpenCart为产品,类别,制造商和信息页面提供了SEO URL,但其他任何东西似乎都没有内置的东西(至少在1.5.0版之前)。 问题答案: 事实证明,可以通过相对简单的更改

  • 问题内容: 我希望创建一个系统,注册后将在我的网站上为用户帐户区域创建一个子域。 例如johndoe.website.com 我认为这可能与.htaccess文件有关,并且可能重定向到网站上的其他位置吗?我真的不知道 但是,任何使我动手的信息将不胜感激。 创建注册区域不是问题-我已经做了很多次了。我只是不确定从子域开始。 问题答案: 快速淘汰 您需要在DNS服务器* .website.com上创建