static URL重写subdir

时间:2013-10-13 18:24:59

标签: php apache .htaccess ipb

我已经将Shearch,我从未发现这是我要求的,所以我想知道它是否可能......或者不......

  • 我在IPB.Board 3.4.5中使用app IP.Downloads进行测试。

  • 我的网站上有这个静态网址,用户可以访问下载一个文件:

      

    mysite.com/的的文件/文件 /2-filename.txt

  • 原始动态网址如下:

      

    ... /应用程序下载=&安培;演出文件= 2

  • 网址的更改由该应用程序(IP.Downloads)...

    进行

    • 我想将其更改为网址:

        

      mysite.com/的文本 /2-filename.txt

    •   

  • 所以当用户在浏览器中插入

    1 mysite.com/text/2-filename.txt

    • 他们看到了文件

    2 mysite.com/files/file/2-filename.txt

    • 他们改写为mysite.com/text/2-filename.txt
      • 并查看该文件。
我怎样才能做到这一点?从(/ files / file /)更改为(/ text /)... 可以通过.htaccess制作,或者我必须更改应用程序文件?还是不可能?

:: UPDATE ::

我做到了!没有.htaccess,我改变了重写网址的核心文件...

请参阅下面的答案......


感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

将此添加到您的网络根.htaccess目录

中的/
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+files/file/([^?\s]+) [NC]
RewriteRule ^ /text/%1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+text/ [NC]
RewriteRule ^ /files/file/%1

答案 1 :(得分:0)

我是通过更改核心文件来实现的...它对我来说更简单,所以我使用这种方式。 感谢@ ravi-thapliyal尝试通过.htaccess帮助制作这个,但我更喜欢这种方式......

首先打开此文件:

{论坛根} /管理/ applications_addon / IPS /下载/扩展

  1. 在$ _SEOTEMPLATES =数组中编辑此代码[' idmshowfile ']

    • 这将告诉服务器当用户访问(myserver.com/text/)时,他们想要查看文件...

    •   

      'idmshowfile'=>数组(

         'app'          => 'downloads',
      
         'allowRedirect' => 1,
      
         'out'          => array( '/app=downloads(&|&)showfile=(.+?)(&|$)/i', 'text/$2-#{__title__}/$3' ),
      
         'in'           => array( 
      
             'regex'        => "#/text/(\d+?)-#i",
      
             'matches'  => array( 
      
                 array( 'app'       , 'downloads' ),
      
                 array( 'showfile'  , '$1' ))
      
                 ) 
      
         ),
      
  2. 并将此代码添加到$ _SEOTEMPLATES = array,在任何位置......

    • 这将告诉服务器,如果用户转到(myserver.com/files/file/),他们将重写url(myserver.com/text/),并查看该文件。

    •   

      'idmshowfile2'=>数组(

         'app'          => 'downloads',
      
         'allowRedirect' => 1,
      
         'out'          => array( '/app=downloads(&|&)showfile=(.+?)(&|$)/i', 'text/$2-#{__title__}/$3' ),
      
         'in'           => array( 
      
             'regex'        => "#/files/file/(\d+?)-#i",
      
             'matches'  => array( 
      
                 array( 'app'       , 'downloads' ),
      
                 array( 'showfile'  , '$1' ))
      
                 ) 
      
         ),
      
  3. 您可以根据需要为论坛添加任意数量的重写,并创建友好的SEO网址。

    当然我知道这个文件可以在应用程序的未来更新中覆盖,所以我会进行备份,如果可能会创建一个钩子或应用程序来做这个(...如果可能的话)。