0

我已经搜索过了,我从来没有找到我要问的这个,所以我想知道这是否可能......或者没有......

  • 我正在使用应用程序 IP.Downloads 在 IPB.Board 3.4.5 中对此进行测试。

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

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

  • 原始的动态 url 是这样的:

    .../?app=下载&showfile=2

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

    • 我想将其更改为网址:

      mysite.com/text/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 进行,或者我必须更改应用程序文件?还是不可能?

::更新::

我已经做了!没有 .htaccess ,我更改了重写 url 的核心文件...

请看下面的答案...


谢谢你的帮助。

4

2 回答 2

0

将此添加到您.htaccess的 Web 根/目录中

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
于 2013-10-13T18:35:39.827 回答
0

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

首先打开这个文件:

{forum-root}/admin/applications_addon/ips/downloads/extensions

  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' ))
      
                 ) 
      
         ),
      

您可以根据需要向论坛添加任意数量的重写,并创建漂亮且友好的 SEO URL。

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

于 2013-10-19T00:01:27.183 回答