ehime
ehime

Reputation: 8405

htaccess rewrite directory and index with anchors

Just curios if there's a way to have a rewrite for /static/index-discover.html look like its coming from /discover/? And does this mean that I can, from that point have href's point to anchors like /discover/#whatever and /discover/#whatever/andagain?

I know the htaccess stuffs done to death, but I don't think I've ever seen it used with anchor tags and writebacks

current .htaccess

############################################
## uncomment these lines for CGI mode
## make sure to specify the correct cgi php binary file name
## it might be /cgi-bin/php-cgi

#    Action php5-cgi /cgi-bin/php5-cgi
#    AddHandler php5-cgi .php

############################################
## GoDaddy specific options

#   Options -MultiViews

## you might also need to add this line to php.ini
##     cgi.fix_pathinfo = 1
## if it still doesn't work, rename php.ini to php5.ini

############################################
## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

############################################
## default index file

    DirectoryIndex index.php #index.php

<IfModule mod_php5.c>

############################################
#resetting the max cookie lifetime to 2 hrs to allow
# long sessions
#php_value session.gc_maxlifetime 7200

############################################
## adjust memory limit

#    php_value memory_limit 64M
#    php_value memory_limit 256M
#    php_value max_execution_time 18000

############################################
## disable magic quotes for php request vars

#    php_flag magic_quotes_gpc off

############################################
## disable automatic session start
## before autoload was initialized

#    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
# disable user agent verification to not break multiple image upload

#    php_flag suhosin.session.cryptua off

###########################################
# turn off compatibility with PHP4 when dealing with objects

#    php_flag zend.ze1_compatibility_mode Off

</IfModule>

<IfModule mod_security.c>
###########################################
# disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

</IfModule>

# <IfModule mod_ssl.c>

############################################
## make HTTPS env vars available for CGI mode

    # SSLOptions StdEnvVars

# </IfModule>

<IfModule mod_rewrite.c>

############################################
## enable rewrites

    # Options +FollowSymLinks
    RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

    # handle the rewriting of non-www better than Magento does (preserve the paths)
    RewriteCond %{HTTP_HOST} ^smartwool.com$ [NC]
    RewriteRule ^(.*)$ http://www.smartwool.com/$1 [R=301,L]

    # handle links from smartwool pro
#   RewriteCond %{HTTP_HOST} ^(www\.)?smartwoolpro.com$ [NC]
#   RewriteRule ^(.*)$ http://www.smartwool.com/pro [R=301,L]

    # hide all SVN
    RedirectMatch 404 /\\.svn(/|$)

RewriteRule ^feed.json$ feed.php

############################################
## workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>


############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"

</IfModule>

############################################
## By default allow all access

    Order allow,deny
    Allow from all

############################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none

############################################
## Redirect Directory Expert to subdomain

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?smartwool\.com$
    RewriteRule ^expert/(.*) http://expert.smartwool.com/$1 [R=301,L]

############################################
## Deny updater script from everyone

    <filesMatch "^(mupt|edi)\.php$">
     deny from all
    </filesMatch>

############################################
## Discover page rewrite

    RewriteEngine on
    RewriteRule ^discover/$ static/discover.html [L]

Upvotes: 0

Views: 841

Answers (1)

honyovk
honyovk

Reputation: 2747

Hash "#" tags are strictly client-side and never sent to the server. Thus, .htaccess will never see them. To use them, you must implement JavaScript to read them.

However to use .htaccess to get the URL you are looking for, do:

RewriteEngine On
RewriteRule ^discover/$ static/index-discover.html [L]

EDIT: I see now what you meant by the anchor tags... I guess I read your question too fast. If you do a redirect like I posted, all anchor tags will work just fine. \

Upvotes: 2

Related Questions