URL rewriting in PHP without htaccess

后端 未结 5 698
面向向阳花
面向向阳花 2020-11-27 18:21

Website is running on a web host where we don\'t have access to a .htaccess file. However, I want to do URL rewriting for user friendly URLs.

e.g. Origi

相关标签:
5条回答
  • 2020-11-27 18:57

    as Alix Axel suggested you can use

    www.example.com/index.php/file/name
    

    then you will use $_SERVER['REQUEST_URI'] to process the URL.

    0 讨论(0)
  • 2020-11-27 19:03

    Your best bet will be to have URLs such as this:

    www.example.com/index.php/file/name
    

    You'll to rewrite your PHP code though.

    0 讨论(0)
  • 2020-11-27 19:11

    Try this

    www.example.com/file?q=name

    to

    www.example.com/name (better than www.example.com/file/name)

    Open your .htaccess from your project root folder and add this code

    Options +FollowSymLinks
    
    RewriteEngine On
    RewriteRule \.(js|css|jpe?g|png|gif)$ - [L]
    
    
    RewriteRule "^([ \w-]+)/?$" /file?q=$1 [L,QSA]
    

    This solves your problem. See the post how to rewrite URL in .htaccess

    0 讨论(0)
  • 2020-11-27 19:15

    As other people said, just use links like /index.php/nice/looking/url.
    The "index.php" in the middle of the URL might look a little strange, but I don't think it's possible to have it look better without .htaccess

    Else, you could ask your hoster to redirect any URL to /index.php so that you can handle URL rewriting without having /index.php in your URL.

    Then you can just use a regex match to detect what file to include.
    preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches) ($matches will contain all "parts" of the url in an array)

    Be careful with including the files, use a whitelist so you're sure nobody would be able to load internal files.

    0 讨论(0)
  • 2020-11-27 19:21

    If you have an Apache server and AcceptPathInfo is enabled, then you can use the URL you wrote. A request of /file/name will then be automatically rewritten to /file with the PATH_INFO value of /name if /file is a regular file.

    0 讨论(0)
提交回复
热议问题