当前位置 : 首页 » 互动问答 » 正文

我的网址是xyz.com/songs.pgp?lang=3&movie=198,我想显示xyz.com/moviename.html

分类 : 互动问答 | 发布时间 : 2018-04-27 16:57:56 | 评论 : 3 | 浏览 : 37 | 喜欢 : 0

my url is xyz.com/songs.php?lan=3&movie=198,

我想要显示 xyz.com/moviename.html ,是否可以使用.htacces ..?请帮我

在我的.htaccess文件中使用 -

 RewriteRule ^([^ /。] +)/([^ /。] +)$ songs.php ?lan = $ 1&movie = $ 2 [QSA,L]
它显示 -  

但我想显示 xyz.com/moviename.html 请帮我完全熟悉这个xyz.com/moviename.html xyz.com/telugu/moviename

回答(3)

  • 1楼
  • 在这种情况下,您可以像CMS和框架所做的那样:

    首先将所有请求重定向到.htaccess中的index.php:

     Options + FollowSymLinks
    重写引擎
    
    RewriteCond%{QUERY_STRING} base64_encode [^(] * \([^)] * \)[OR]
    RewriteCond%{QUERY_STRING}(<|%3C)([^ s] * s)+ cript。*(> |%3E)[NC,OR]
    RewriteCond%{QUERY_STRING} GLOBALS(= | \ [| \%[0-9A-Z] {0,2})[OR]
    RewriteCond%{QUERY_STRING} _REQUEST(= | \ [| \%[0-9A-Z] {0,2})
    RewriteRule。* index.php [F]
    RewriteRule。*  -  [E = HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond%{REQUEST_URI}!^ / index \ .php
    RewriteCond%{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw|xml|jpg|ajx))$ [NC]
    RewriteCond%{REQUEST_FILENAME}!-f
    RewriteCond%{REQUEST_FILENAME}!-d
    RewriteRule。* index.php [L]
    

    之后,所有的请求都会重定向到你的index.php。例如DOMAIN / a.html和DOMAIN / a / b.html和...

    此时$ _SERVER ['REQUEST_URI']是您请求的地址,例如/a.html,您可以决定哪个数据应根据当前的URL显示。

  • 2楼
  • 如果你想要

    xyz.com/moviename.html

    ,那么你需要为每部电影编写一条规则。即

     RewriteRule ^ moviename.html songs.php?lan = 3&movie-123
    RewriteRule ^ another-moviename.html songs.php?lan = 4&movie-124
    

    更简单的方法是在URL中包含movie_id:

    #Catch xyz.com/123/the-movie-title
    RewriteRule ^([0-9] +)/([^ /。] +)。html songs.php?lan = 3&movie = $ 2
    

    这种方式可以捕捉所有电影,而不需要为每个电影制定特定的规则。然后你可以在你的代码中检查ID是否有效。您也可以抓取电影标题并检查它是否与URL匹配,如果不是,则根据电影ID重定向到正确的电影标题。

  • 3楼
  • 考虑到你的意见,我认为你应该尝试一种不同的方法。

    更新你的.htaccess来通过一个文件(index.php)路由所有的请求。

     Options + FollowSymLinks
    重写引擎
    
    RewriteCond%{REQUEST_FILENAME}!-f
    RewriteCond%{REQUEST_FILENAME}!-d
    RewriteRule(。*)index.php?route = $ 1 [L,QSA]
    

    然后在index.php中,你可以做类似的事情(请注意这需要以安全的方式实现,下面是一个粗略的概述):

     <?php
    
    //将路由复制到变量中。
    $ route = $ _GET ['route'];
    $ slugs = array_filter(explode('/',$ route));
    
    //检查是否有slu。。例如一个伟大,电影
    if(count($ slugs)> 0){
    
       //在这里执行SQL /数据库查询,看看$ slug [0]是否与电影匹配。
       //很明显,你可以选择并清理输入数据库。
       //例如SELECT id FROM movies where slug = $ slug [0]
    
       //如果加载了您的网页内容,请检查是否有匹配。
       if($ result-> rowCount()> 0){
           //显示页面内容。
       }
       else {
          //显示一个404页面?
       }
    
    
    }
    else {
    
      //显示主页。
    
    }
    

    完成上述操作之后,您现在可以转到如下网址:

    xyz.com/a-great-movie

    xyz.com/another-great-movie

    当然,您可以做所有事情您选择的路由库也是如此。

相关阅读: